J'ai suivi les instructions de démarrage de base pour node.js sur Heroku ici:
https://devcenter.heroku.com/categories/nodejs
Ces instructions ne vous disent pas de créer un .gitignore node_modules, et impliquent donc que node_modules doit être archivé pour git. Lorsque j'inclus node_modules dans git, mon application de démarrage s'est correctement déroulée.
Quand j'ai suivi l'exemple le plus avancé sur:
https://devcenter.heroku.com/articles/realtime-polyglot-app-node-ruby-mongodb-socketio https://github.com/mongolab/tractorpush-server (source)
Il m'a demandé d'ajouter node_modules à .gitignore. J'ai donc supprimé node_modules de git, l'ai ajouté à .gitignore, puis redéployé. Cette fois, le déploiement a échoué comme suit:
-----> 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
L'exécution de "heroku ps" confirme le crash. Ok, pas de problème, j'ai donc annulé la modification, ajouté node_module au référentiel git et supprimé de .gitignore. Cependant, même après le rétablissement, je reçois toujours le même message d'erreur lors du déploiement, mais maintenant l'application fonctionne à nouveau correctement. L'exécution de "heroku ps" m'indique que l'application est en cours d'exécution.
Donc ma question est quelle est la bonne façon de procéder? Inclure noeud_modules ou non? Et pourquoi recevrais-je toujours le message d'erreur lors de la restauration? Je suppose que le dépôt git est en mauvais état du côté Heroku?
node_modules
aux applications Heroku.