Ich habe die grundlegenden Anweisungen für den Einstieg in node.js auf Heroku hier befolgt:
https://devcenter.heroku.com/categories/nodejs
Diese Anweisung fordert Sie nicht auf, ein .gitignore-Knotenmodul zu erstellen, und impliziert daher, dass Knotenmodule in git eingecheckt werden sollten. Wenn ich node_modules in git einbinde, wurde meine Einstiegsanwendung korrekt ausgeführt.
Als ich dem fortgeschritteneren Beispiel folgte:
https://devcenter.heroku.com/articles/realtime-polyglot-app-node-ruby-mongodb-socketio https://github.com/mongolab/tractorpush-server (Quelle)
Es hat mich angewiesen, node_modules zu .gitignore hinzuzufügen. Also habe ich node_modules aus git entfernt, es zu .gitignore hinzugefügt und dann erneut bereitgestellt. Diesmal ist die Bereitstellung wie folgt fehlgeschlagen:
-----> 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
Das Ausführen von "heroku ps" bestätigt den Absturz. Ok, kein Problem, also habe ich die Änderung zurückgesetzt, node_module wieder zum Git-Repository hinzugefügt und es aus .gitignore entfernt. Selbst nach dem Zurücksetzen wird beim Bereitstellen immer noch dieselbe Fehlermeldung angezeigt, aber jetzt wird die Anwendung wieder ordnungsgemäß ausgeführt. Wenn Sie "heroku ps" ausführen, wird mir mitgeteilt, dass die Anwendung ausgeführt wird.
Meine Frage ist also, wie man das richtig macht. Node_modules einschließen oder nicht? Und warum wird beim Rollback immer noch die Fehlermeldung angezeigt? Ich vermute, dass sich das Git-Repository auf der Heroku-Seite in einem schlechten Zustand befindet?
node_modules
Checken Sie nicht in Heroku-Apps ein.