ฉันทำตามคำแนะนำเบื้องต้นในการเริ่มต้นสำหรับ node.js ใน Heroku ที่นี่:
https://devcenter.heroku.com/categories/nodejs
คำสั่งเหล่านี้ไม่ได้บอกให้คุณสร้าง. gitignore node_modules ดังนั้นจึงบอกเป็นนัยว่า node_modules ควรถูกตรวจสอบใน git เมื่อฉันรวม node_modules ในคอมไพล์แอปพลิเคชันเริ่มต้นของฉันทำงานอย่างถูกต้อง
เมื่อฉันทำตามตัวอย่างขั้นสูงเพิ่มเติมได้ที่:
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