by Mariana-Tek

GitHub Readme.md

Heroku Buildpack: Node Cleanup

Make the official Heroku buildpack for Node.js compatible with other buildpacks

Delete the node_modules directory

The maximum allowed Heroku slug size (after compression) is 300MB. Image-heavy apps can somethings butt up against this limit, especially when using multiple buildpacks. If you're using Node.js to compile your front-end assets, but not to run your app, you may be able to save a large amount of space by deleting the node_modules directory before slug compilation.

Support running an app from a subdirectory

Set the NPM_PREFIX environment variable to the relative path of the subdirectory that contains the node_modules directory that you'd like to delete.

Delete the nodejs.sh startup script

There is currently an incompatibility between the Node.js and other buildpacks. On dyno boot, the nodejs.sh startup script sets the WEB_CONCURRENCY variable. The launch scripts of subsequent buildpacks will pick this us with no way of knowing that it wasn't set by a user.


First, set the Node.js buildpack to compile your assets:

$ heroku buildpacks:set heroku/nodejs

Next, add the Node Cleanup buildpack to get rid of the node_modules directory:

$ heroku buildpacks:set --index 1 https://github.com/josephabrahams/heroku-buildpack-node-cleanup

Finally, add whichever buildpack runs your app:

$ heroku buildpacks:set --index 2 heroku/python


For more general information about buildpacks on Heroku: