npm-offline-registry v0.0.9
Supper simple NPM registry server for offline NPM install
Usage
install this npm mpdule
npm i harish2704/npm-offline-registryRun local npm-registry server
npm-offline-registryORnode node_modules/.bin/npm-offline-registryNow the server will run on http://localhost:8234
- use
http://localhost:8234/as registry while doing npm install- use command
npm-offline-installinstead ofnpm installif you need to install packages offline. This is just a wrapper cli which will runnpm iwith--registryoption set - Advanced usage
- Either use
npm install --registry http://localhost:8234/ [package-name]... - Or permanently set config variable
npm config set registry http://localhost:8234/
- Either use
- use command
NOTE: default port can be changed by setting PORT environment variable
How it is working?
- When ever we do
npm installin normal condition, thenpmtool will keep a cache directory of the files which was downloaded bynpmtool. - Default location of this cache directory is
~/.npmfor UNIX machines npm-offline-registrytool will serve the requests using the cached versions of the files.- If a package/version is not found on cache, it is fetched from main
npmregistry. Then is properly inserted in to npm's cache directory.
Dependencies
Currently this tool is using following unix commands to manipulate npm's cache directory.
wgetfor downloading the content from main npm registrymkdirwith-poptiontarcommand with gzip uncompresion
I believe all the above said tools will be available in a typical UNIX machine.
Configurations
Please check config.js. All config values can be over-written by environment-variables
Suggestion for desktop users
- make sure that, Some process manager tool ( Lets say pm2 is available in your
PATH) - install npm-offline-registry globally ( Or add your $HOME/node_modules/.bin to PATH variable )
- Add this start-up command to your "start up applications"
pm2 start npm-offline-registry - Then you can use the command
npm-offine-installat any time duting the desktop-session without any hassle
Using npm-offline-registry as a completely isolated registry
If you set the ENABLE_NPM_FAILOVER config value to false then npm-offlin-registry will not attempt to
contact the upstream NPM registry for unknown packages and instead return a 404 response, meaning you can use
it as an alternative to the NPM registry behind a firewall / isolated from the internet.
Enabling strict mode
If config value STRICT is set to true, while npm checks for the available versions of a given packages,
registry server will reply with list of cached versions.
In this case, if the version is not previously cached, npm-offline-install will fail with, error message version not available
example
env STRICT=true npm-offline-registry`