npm-offline

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 modules

npmrc 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.