This is a Heroku buildpack that enables authenticated npm operations within a Heroku dyno.
It detects an NPM_AUTH_TOKEN
environment variable and creates a .npmrc
file.
It is the soul sister of the GitHub Buildpack.
See the blog post: npm and GitHub automation with Heroku
Use this one-liner to read your npm auth token:
cat ~/.npmrc | head -1 | sed 's/.*=//g'
Save the token and npm registry url in your Heroku app config:
heroku config:set NPM_AUTH_TOKEN=YOUR_TOKEN_HERE
heroku config:set NPM_REGISTRY=YOUR_NPM_REGISTRY_HERE
Configure your app to use this buildpack:
heroku buildpacks:add --index 1 zeke/npm
The next time you push your app to Heroku, this buildpack will create a
.npmrc
file containing your npm token in the base directory of the app:
heroku run bash
cat .npmrc
//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000
Now you can perform authenticated npm operations on the dyno, including
npm publish
!
Tip: If you ever change the token, you'll need to redeploy the app to ensure a new .netrc file is created:
heroku config:set NPM_AUTH_TOKEN=NEW_TOKEN
git commit --allow-empty -m "update dat npm token"
git push heroku master
Tip: Heroku's node buildpack will install dependencies
from package.json
by default. If your app needs devDependencies
to be installed too,
set the following in your app environment:
heroku config:set NPM_CONFIG_PRODUCTION=false
The zeke/npm
buildpack from the Heroku Buildpack Registry represents the latest stable version of the buildpack. If you'd like to use the source code from this Github repository, you can set your buildpack to the Github URL:
$ heroku buildpacks:set https://github.com/galmis/npm-buildpack