npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@build-script/poormans-package-change

v1.0.34

Published

- Do you manage more than 10 package at same time? - Did you forgot/lazy to tag previous version with git? - Did you remember which package changed since last publish? - Should you increase version and publish it again?

Downloads

50

Readme

poormans-package-change

  • Do you manage more than 10 package at same time?
  • Did you forgot/lazy to tag previous version with git?
  • Did you remember which package changed since last publish?
  • Should you increase version and publish it again?

Run this now! It's FREE! Pickup your phone (BEEEEEP)

Usage

poormans-package-change <command> [--args]

command: detect-package-change

Usage: poormans-package-change detect-package-change --registry ??? --dist-tag ??? --package ??? --bump --json --quiet
         registry: default to use system .npmrc
         dist-tag: default to "latest"
         package: this folder contains package.json (default to ./)
         bump: increase patch version in package.json if change detected
		 json: print json output even if stdout is tty
		 quiet: disable verbose debug output to stderr

Require git available on PATH.

Output:

  • { changedFiles: [......], changed: true } if !process.stdout.isTTY OR --json is set
  • changed no. or changed yes. if stdout isTTY AND --json is not set
  • no output if --bump is set

The return code always 0 if no error. no matter changed or not.

What happens

  1. download newest package.json from npm, and cache it at ${TMPDIR}/package-json-cache
  2. compare version field with local package.json
    • If they are not equal. Then I will do nothing and print "changed yes.".
  3. download published tarball from npm
  4. run pnpm pack locally, or npm run prepack+npm pack if no pnpm.
  5. compare files in created .tgz file and downloaded one. (by running some magic git commands)
    1. if --bump is set, increase patch version in package.json
    2. if any file do not equal, print "changed yes.".
    3. if everything exact same, print "changed no."

command: run-if-version-mismatch

Usage: poormans-package-change run-if-version-mismatch [--quiet] -- <command to run>
	Eg: poormans-package-change run-if-version-mismatch -- pnpm publish --no-git-checks

Run a command, if local version in package.json is NOT same with npm registry.
The -- is required.

Example

# update package.json if something changed
poormans-package-change detect-package-change --bump --quiet
# run pnpm publish if version is not same with npm
#    maybe modified by above command
#    maybe by hand
poormans-package-change run-if-version-mismatch --quiet -- pnpm publish --no-git-checks