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.
- Make sure you're ready to go: Your project should be built, the
versionfield in yourpackage.jsonshould already be incremented, and thefilesfield should point to everything you want to publish. - Run
npm2git.shwith 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 ofHEAD.cs- Same, but also tagHEADasvX.X.X-src.o- Tag release as an orphaned commit.os- Same, but also tagHEADasvX.X.X-src.
- 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:*).