How can I invoke npm on heroku command line (to install bower components)?
bower, heroku, node.js
Solution
You can also setup a `postintall` command, something like this in your `package.json`
"dependencies": {
"bower": "0.6.x"
},
"scripts": {
"postinstall": "./node_modules/bower/bin/bower install"
}
Then `npm install` will also install bower dependencies.
Pros : one command to rule them all.
Cons : you unnecessarily embed bower as a dependency.
Problem
Bower is for client side Javascript what npm is for the server side and reads a `component.json` file to recognize dependencies that should be fetched at deploy time so I'd be happy it heroku would run it at slug compilation time. Unfortunately I can not invoke npm or bower from a heroku console or one-off command (`heroku run "npm help"`) (`heroku run bash` -> `npm help`) as it's possible with ruby's rake. I've put npm and node (latest/x versions) in my `package.json` but in the engines section, not the dependencies. I think this could be solved by customizing the node buildpack but I consider this a little too heavy task just for activating something so obvious.