Recently @ FX Networks, we began injecting npm private modules via npm Enterprise into some of our applications. This has allowed us to maintain a very clean and modularized development environment that is much easier to manage.
One issue that we ran into initially when integrating npm Enterprise w/Jenkins was that builds that were previously passing started failing once we added our scoped packages to the mix.
+ npm install @fx/some-private-module npm ERR! Linux 3.13.0-48-generic npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "@fx/some-private-module" npm ERR! node v0.12.3 npm ERR! npm v2.9.1 npm ERR! code E404 npm ERR! 404 Not found : @fx/some-private-module npm ERR! 404 npm ERR! 404 '@fx/some-private-module' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 It was specified as a dependency of 'fx-node-app' npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url.
We had successfully authenticated to the private registry from the Jenkins server but the builds were still failing. Since npm Enterprise is a new offering, search results on using it w/Jenkins were scarce. After a chat w/Ernie @ npm, who pointed us to a couple of useful articles, we added the following to our build configs to resolve the error above:
cp /home/tomcat/.npmrc .npmrc
Adding that in the Execute Shell task just before
npm install ensures that the authentication token is available for validation once we
npm install. Now all of the builds involving our private npm registry are stable once again.