Ich habe die grundlegenden erste Schritte Anleitungen für Node.js auf Heroku finden Sie hier:
https://devcenter.heroku.com/categories/nodejs
Diese Anweisungen sagen nicht, dass Sie eine .gitignore node_modules erstellen sollen, und implizieren daher, dass der Ordner Knoten_Module sollte bei Git eingecheckt werden. Wenn ich ein Knoten_Module im Git-Repository, lief meine Einstiegsanwendung korrekt.
Als ich das fortgeschrittene Beispiel unter:
- Erstellung einer polyglotten Echtzeit-Anwendung mit Node.js, Ruby, MongoDB und Socket.IO
- https://github.com/mongolab/tractorpush-server (Quelle)
Es wies mich an, den Ordner Knoten_Module zu den Akten .gitignore . Also habe ich den Ordner Knoten_Module aus Git und fügte es der Datei .gitignore und dann umverteilt werden. Diesmal schlug der Einsatz wie folgt fehl:
-----> 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
Die Ausführung von "heroku ps" bestätigt den Absturz. OK, kein Problem, also habe ich die Änderung rückgängig gemacht, den Ordner Knoten_Modul zurück in das Git-Repository und entfernte es aus der Datei .gitignore . Allerdings erhalte ich auch nach der Rückgängigmachung immer noch dieselbe Fehlermeldung bei der Bereitstellung, aber jetzt läuft die Anwendung wieder korrekt. Die Ausführung von "heroku ps" zeigt mir, dass die Anwendung läuft.
Was ist der richtige Weg, dies zu tun? Ordner einbinden Knoten_Module oder nicht? Und warum erhalte ich die Fehlermeldung immer noch, wenn ich ein Rollback durchführe? Meine Vermutung ist, dass sich das Git-Repository auf der Heroku-Seite in einem schlechten Zustand befindet.