Skip to content

expofp/heroku-buildpack-nodejs

 
 

Repository files navigation

Heroku Buildpack for Node.js

nodejs

This is the official Heroku buildpack for Node.js apps.

Build Status

Documentation

For more information about using this Node.js buildpack on Heroku, see these Dev Center articles:

For more general information about buildpacks on Heroku:

Locking to a buildpack version

In production, you may want to lock dependencies - including buildpacks - to a specific version.

First, find the version you want from the list of buildpack versions. Then, specify that version with buildpacks:set:

heroku buildpacks:set https://github.com/heroku/heroku-buildpack-nodejs#v170 -a my-app

If you have trouble upgrading to the latest version of the buildpack, please open a support ticket at help.heroku.com so we can assist.

Chain Node with multiple buildpacks

This buildpack automatically exports node, npm, and any node_modules binaries into the $PATH for easy use in subsequent buildpacks.

Feedback

Having trouble? Dig it? Feature request?

Development

Prerequisites

For local development, you may need the following tools:

Deploying an app with a fork or branch

To make changes to this buildpack, fork it on GitHub. Push up changes to your fork, then create a new Heroku app to test it, or configure an existing app to use your buildpack:

# Create a new Heroku app that uses your buildpack
heroku create --buildpack <your-github-url>

# Configure an existing Heroku app to use your buildpack
heroku buildpacks:set <your-github-url>

# You can also use a git branch!
heroku buildpacks:set <your-github-url>#your-branch

Tests

The buildpack tests use Docker to simulate Heroku's stacks.

To run the test suite:

make test

Or to just test a specific stack:

make heroku-16
make heroku-18
make heroku-20

The tests are run via the vendored shunit2 test framework.

Common Issues

Proxy Issues

If your builds are not completing and have errors you may need to examine your build environment for HTTP_PROXY, HTTPS_PROXY, and NO_PROXY environment variables. A few examples of build output that may indicate issues with these values are below.

// ...
-----> Installing binaries
       engines.node (package.json):  10
       engines.npm (package.json):   unspecified (use default)

       Resolving node version 10...
       Error: Unknown error installing "10" of node

-----> Build failed
// ...
// ...
-----> Node.js app detected
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to lang-common.s3.amazonaws.com:443
// ...

If the environment where you are running the buildpack does not require a proxy to be used for HTTP connections you should try setting the NO_PROXY environment variable to amazonaws.com, i.e. running the command export NO_PROXY=amazonaws.com immediatly before executing the buildpack or by setting that environment value inside the buildpack. If you find HTTP_PROXY and HTTPS_PROXY environment variables and do not need a proxy in your build environment then the environment variables should be removed.

Packages

 
 
 

Languages

  • Shell 82.4%
  • Go 10.7%
  • Ruby 5.7%
  • Makefile 1.2%