Use Git as an npm registry
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Conduitry 5535138784 commit without running verify hooks 1 年之前
LICENSE add license 1 年之前 update readme 1 年之前 commit without running verify hooks 1 年之前


Use Git as an npm registry.


Managing an npm registry sucks, and using a central, privately controlled registry also arguably sucks. If you're thinking you want or need to run one, then it's reasonably likely that you already have a Git server available with all the appropriate users and permissions and everything. npm v5+ supports resolving semver ranges against Git tags, so there's no longer a good reason not to abuse Git to deliver built assets.


This shell script creates and tags a (possibly orphaned) commit which includes only the files that would be included by npm publish. Before doing so, it also removes the prepare script from package.json, if present. (The prepare script is typically used to build a package after installing it from Git. Here, what npm's getting is already the built files, so we don't want that to happen.) It also optionally creates a (non-annotated) vX.X.X-src tag which points to the original source that the (annotated) vX.X.X tag was built from.


  1. Make sure you're ready to go: Your project should be built, the version field in your package.json should already be incremented, and the files field should point to everything you want to publish.
  2. Run with the appropriate option for how you want the commit and tag(s) created. This does not push anything.
    • c - Tag release as a child commit of HEAD.
    • cs - Same, but also tag HEAD as vX.X.X-src.
    • o - Tag release as an orphaned commit.
    • os - Same, but also tag HEAD as vX.X.X-src.
  3. Inspect to make sure all seems well, and then push.


See the npm docs on npm install for more on how to install from Git repositories. Specify a version either by tag (#vX.X.X) or by semver specification (#semver:*).