Around the introduction of the npm-registry-client (version ~1.1.25),
npm required couchdb auth credentials for package GET requests (for
security reasons I think). We use different credentials for our public
and private repos and couldn't naively proxy GET requests to the
public npmjs.org anymore.

@wyrdvans fixed these issues by setting up vhosts, replicating the
npmjs.org registry and our private registry. This also improved
performance on our network, reduced load on the public npmjs.org, made
it easier to run security audits on our node dependencies, and removed
the need to run this proxy.

Hopefully we can support multiple npm repositories in npm itself
instead of needing a fully replicated repo or an npm proxy:

Usage

Usage: npm-proxy [options]
Options:
-h, --help output usage information
-V, --version output the version number
-t, --target [localhost:8080] hostname and port to listen on or url
-c, --child-registry-target [localhost:5984] NPM registry to push packages and pull from first
-p, --parent-registry-target [registry.npmjs.org:80] NPM registry to pull packages from if the child doesn't have it

Once the proxy is running point npm to it using any of the methods
from "Using the registry with the npm client" section of the
npmjs.org project.