Segui as instruções básicas de introdução ao node.js no Heroku aqui:
https://devcenter.heroku.com/categories/nodejs
Essas instruções não dizem para você criar um node_modules .gitignore e, portanto, implica que o node_modules deve ser registrado no git. Quando incluo node_modules no git, meu aplicativo de iniciação é executado corretamente.
Quando segui o exemplo mais avançado em:
https://devcenter.heroku.com/articles/realtime-polyglot-app-node-ruby-mongodb-socketio https://github.com/mongolab/tractorpush-server (fonte)
Ele me instruiu a adicionar node_modules ao .gitignore. Portanto, removi o node_modules do git, o adicionei ao .gitignore e reimplantei. Desta vez, o implementado falhou da seguinte forma:
-----> Heroku receiving push
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.8.2
Using npm version: 1.0.106
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
Error: npm doesn't work with node v0.8.2
Required: node@0.4 || 0.5 || 0.6
at /tmp/node-npm-5iGk/bin/npm-cli.js:57:23
at Object.<anonymous> (/tmp/node-npm-5iGk/bin/npm-cli.js:77:3)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/tmp/node-npm-5iGk/cli.js:2:1)
at Module._compile (module.js:449:26)
Error: npm doesn't work with node v0.8.2
Required: node@0.4 || 0.5 || 0.6
at /tmp/node-npm-5iGk/bin/npm-cli.js:57:23
at Object.<anonymous> (/tmp/node-npm-5iGk/bin/npm-cli.js:77:3)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/tmp/node-npm-5iGk/cli.js:2:1)
at Module._compile (module.js:449:26)
Dependencies installed
-----> Discovering process types
Procfile declares types -> mongod, redis, web
-----> Compiled slug size is 5.0MB
-----> Launching... done, v9
A execução de "heroku ps" confirma a falha. Ok, não há problema, então revirei a alteração, adicione node_module novamente ao repositório git e removi-o do .gitignore. No entanto, mesmo após a reversão, ainda recebo a mesma mensagem de erro na implantação, mas agora o aplicativo está sendo executado corretamente novamente. A execução de "heroku ps" indica que o aplicativo está sendo executado.
Então, minha pergunta é qual é o caminho certo para fazer isso? Incluir node_modules ou não? E por que eu continuaria recebendo a mensagem de erro quando reverter? Meu palpite é que o repositório git está em um estado ruim no lado Heroku?
node_modules
in nos aplicativos Heroku.