Sollte ich node_modules einchecken, um beim Erstellen einer node.js-App auf Heroku zu git?

Ich habe die grundlegenden Anweisungen für die ersten Schritte mit 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 Anwendung "Erste Schritte" ordnungsgemäß 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 wies mich an, node_modules zu .gitignore hinzuzufügen. Also entfernte ich node_modules aus git, fügte es zu .gitignore hinzu und stellte es erneut bereit. Diesmal schlug der Einsatz folgendermaßen 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: [email protected] || 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: [email protected] || 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 rückgängig gemacht, node_module wieder zum Git-Repository hinzugefügt und es aus .gitignore entfernt. Auch nach dem Zurücksetzen wird bei der Bereitstellung immer noch die gleiche Fehlermeldung angezeigt, aber jetzt wird die Anwendung wieder ordnungsgemäß ausgeführt. Das Ausführen von "heroku ps" teilt mir mit, dass die Anwendung ausgeführt wird.

Meine Frage ist also, wie man das richtig macht. Node_modules einbinden oder nicht? Und warum erhalte ich beim Rollback immer noch die Fehlermeldung? Meine Vermutung ist, dass sich das Git-Repository auf der Heroku-Seite in einem schlechten Zustand befindet?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage