Я следовал основным инструкциям по началу работы для node.js на Heroku:
https://devcenter.heroku.com/categories/nodejs
Эти инструкции не говорят вам создавать .gitignore node_modules, и поэтому подразумевают, что node_modules должны быть зарегистрированы в git. Когда я включаю node_modules в git, моё приложение запускается правильно.
Когда я последовал более сложному примеру:
https://devcenter.heroku.com/articles/realtime-polyglot-app-node-ruby-mongodb-socketio https://github.com/mongolab/tractorpush-server (источник)
Он поручил мне добавить node_modules в .gitignore. Поэтому я удалил node_modules из git, добавил его в .gitignore, а затем повторно развернул. На этот раз развернуто не удалось так:
-----> 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
Запуск "Heroku PS" подтверждает падение. Хорошо, нет проблем, поэтому я откатил изменения, добавил node_module обратно в репозиторий git и удалил его из .gitignore. Тем не менее, даже после возврата я получаю то же сообщение об ошибке при развертывании, но теперь приложение снова работает правильно. Запуск "heroku PS" говорит мне, что приложение работает.
Итак, мой вопрос, как правильно это сделать? Включить node_modules или нет? И почему я все еще получаю сообщение об ошибке при откате? Я думаю, что хранилище git находится в плохом состоянии на стороне Heroku?
node_modules
регистрируйтесь в приложениях Heroku.