Skip to content
This repository has been archived by the owner on Jan 14, 2020. It is now read-only.
/ npm-pkgr Public archive

Cache `npm install` results by hashing dependencies

Notifications You must be signed in to change notification settings

vvo/npm-pkgr

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm-pkgr

Build Status Dependency Status devDependency Status

npm-pkgr caches npm install results by hashing dependencies from package.json and npm-shrinkwrap.json.

If your package.json did not change from last build, then you will immediately get either:

  • a symlink node_modules..
  • a full node_modules copy..

.. to the latest build result located in ~/.npm-pkgr

npm-pkgr frees your deployments from npm network issues and will make your deploys run fast.

Usage

npm install -g npm-pkgr

Use npm-pkgr instead of npm install and you are done.

npm-pkgr

Hashes and finds the latest build corresponding to package.json and npm-shrinkwrap.json.

npm-pkgr --production

Hashes and finds the latest build corresponding to npm-shrinkwrap.json.

npm-pkgr --show-npm-output

Displays npm's output, if npm install is run.

Every other flag passed to npm-pkgr is passed down to the npm install command.

Cache folder

The cache folder used by npm-pkgr is ~/.npm-pkgr for the current user.

npm-pkgr prune

Removes cache folders older than a month (in your ~/.npm-pkgr folder)

Debug

DEBUG=npm-pkgr* npm-pkgr

Will give you some debug information.

strategy

Default strategy is to symlink $CWD/node_modules -> ~/.npm-pkgr/$hash/node_modules.

You can also get a full copy of the ~/.npm-pkgr/$hash/node_modules.

npm-pkgr --strategy=copy

Careful, if you --strategy copy, you will end up installing the copy package

symlinks

Use the --symlinks option if you wish make some files or folders from your project available during npm install.

For example if your project includes a local .cache folder for the npm cache and a node_shrinkwrap folder for pre-packaged modules, then you can use the following command to make those resources available when npm-pkgr runs npm install:

npm-pkgr --symlinks=.cache,node_shrinkwrap

cachepath

Use the --cachepath option if you want use a specific folder for the cache folder.

npm-pkgr --cachepath=/data/node-vXXX/.npm-pkgr

features

  • insanely fast npm install if already done
  • npm install once in your CI server, deploy everywhere
  • solves shrinkwrap inconsistencies/problems
  • solves devDependencies updates even when you use a shrinkwrap
  • concurrent builds
  • get symlinks or copy to cached node_modules