Tôi đã làm theo các hướng dẫn bắt đầu cơ bản cho node.js trên Heroku tại đây:
https://devcenter.heroku.com/clists/nodejs
Các hướng dẫn này không bảo bạn tạo một nút .mitignore node_modules, và do đó ngụ ý rằng node_modules nên được kiểm tra để git. Khi tôi bao gồm node_modules trong git, ứng dụng bắt đầu của tôi chạy đúng.
Khi tôi làm theo ví dụ nâng cao hơn tại:
https://devcenter.heroku.com/articles/realtime-polyglot-app-node-ruby-mongodb-socketio https://github.com/mongolab/tractorpush-server (nguồn)
Nó hướng dẫn tôi thêm node_modules vào .gitignore. Vì vậy, tôi đã loại bỏ node_modules khỏi git, thêm nó vào .gitignore, sau đó triển khai lại. Lần này việc triển khai thất bại như vậy:
-----> 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
Chạy "heroku ps" xác nhận sự cố. Ok, không có vấn đề gì, vì vậy tôi đã khôi phục lại thay đổi, thêm node_module trở lại kho git và xóa nó khỏi .gitignore. Tuy nhiên, ngay cả sau khi hoàn nguyên, tôi vẫn nhận được thông báo lỗi tương tự khi triển khai nhưng bây giờ ứng dụng đang chạy lại chính xác. Chạy "heroku ps" cho tôi biết ứng dụng đang chạy.
Vì vậy, câu hỏi của tôi là những gì đúng cách để làm điều này? Bao gồm node_modules hay không? Và tại sao tôi vẫn nhận được thông báo lỗi khi tôi quay lại? Tôi đoán là kho git đang ở trạng thái xấu về phía Heroku?
node_modules
ứng dụng Heroku.