An npm registry proxy that uses your npm cache to retrieve modules, allowing for offline access to any modules you've previously installed pretty much ever.
Super useful when you're moving around a lot and don't always have internet readily available – i.e. when travelling, or at events such as CampJS. It's nice to not need a decent WiFi connection to start a new project.
CLI Usage
Install globally using the following:
$ npm install -g npm-offline
Then you can boot up the proxy server using your newly installed npm-offline
command:
$ npm-offline
http://localhost:12644/
Switching Registries
The final step is to point npm to use this registry instead of the default
registry.npmjs.org
. You don't want to do this permanently, or you'll never
get up-to-date module versions. But by using npmrc
you can quickly switch between registries. If you're not familiar with it,
you can get a basic setup like so:
npm install -g npmrc
mkdir -p ~/.npmrcs
cat ~/.npmrc > ~/.npmrcs/default
cat ~/.npmrc > ~/.npmrcs/local
npmrc local
npm config set registry http://localhost:12644/
You can now switch between the local registry and the remote one using a single command:
npmrc local # use local modulesnpmrc default # use the US registry
This is the same approach advised when using the Australian/European npm mirrors and internal private registries, so it's worth familiarising yourself with it :)
Module Usage
If, for whatever reason, you want to include npm-offline as part of a larger web server you can easily do so.
route = offline(cache, registry)
Creates a route for proxying requests: where cache
is your npm cache
repository.
route(req, res)
var offline =var express =var npmconf =var app =npmconf
License
MIT. See LICENSE.md for details.