That project builds assets remotely on a production server, so webpack needs to be moved from devDependencies to dependencies. DevDependencies are only used locally (on the developer’s machine), and are not executed when you run npm install --production (which is run by Heroku’s node buildpack). So with a default configuration, devDependencies won’t be installed on a production server at all.
Also, it looks like the project is using npm’s shrinkwrap. Npm isn’t great at keeping package.json and npm-shrinkwrap.json in sync, so currently we Node devs have to do that manually with something like this: rm npm-shrinkwrap.json; npm install; npm shrinkwrap
tl;dr: In package.json, I moved of the devDependencies node modules to dependencies and I now run rm npm-shrinkwrap.json; npm install; npm shrinkwrap before pushing to Heroku and everything works now.
Well, I was overdoing it until I saw your note, and that seem sufficient. Seems that npm shrinkwrap should have an option so you don’t have to manually rm it.