Échec du déploiement d'Heroku. J'ai consulté d'autres publications similaires sur le débordement de pile et la modification du fichier package.json en essayant des solutions qui ont fonctionné pour d'autres sans succès. Je ne sais pas s'il s'agit d'un problème de port, d'un problème package.json ou de quelque chose de complètement différent. Toute aide, astuce ou conseil est grandement apprécié!
app.listen(PORT, '0.0.0.0', function () { console.log("Node app is running at localhost:" + app.get('port'));
fichier server.js
Heroku logs: 2019-02-09T08:32:56.609533+00:00 heroku[web.1]: State changed from crashed to starting 2019-02-09T08:33:00.956199+00:00 heroku[web.1]: Starting process with command `npm start` 2019-02-09T08:33:03.430137+00:00 heroku[web.1]: State changed from starting to crashed 2019-02-09T08:33:03.257739+00:00 app[web.1]: 2019-02-09T08:33:03.257781+00:00 app[web.1]: > the-lottery-genie-mean@0.0.0 start /app 2019-02-09T08:33:03.257783+00:00 app[web.1]: > ng serve 2019-02-09T08:33:03.257784+00:00 app[web.1]: 2019-02-09T08:33:03.294426+00:00 app[web.1]: sh: 1: ng: not found 2019-02-09T08:33:03.304958+00:00 app[web.1]: npm ERR! file sh 2019-02-09T08:33:03.305986+00:00 app[web.1]: npm ERR! code ELIFECYCLE 2019-02-09T08:33:03.306367+00:00 app[web.1]: npm ERR! errno ENOENT 2019-02-09T08:33:03.309015+00:00 app[web.1]: npm ERR! syscall spawn 2019-02-09T08:33:03.310700+00:00 app[web.1]: npm ERR! the-lottery-genie-mean@0.0.0 start: `ng serve` 2019-02-09T08:33:03.310912+00:00 app[web.1]: npm ERR! spawn ENOENT 2019-02-09T08:33:03.311266+00:00 app[web.1]: npm ERR! 2019-02-09T08:33:03.311514+00:00 app[web.1]: npm ERR! Failed at the the-lottery-genie-mean@0.0.0 start script. 2019-02-09T08:33:03.314421+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above. 2019-02-09T08:33:03.324652+00:00 app[web.1]: 2019-02-09T08:33:03.324892+00:00 app[web.1]: npm ERR! A complete log of this run can be found in: 2019-02-09T08:33:03.325013+00:00 app[web.1]: npm ERR! /app/.npm/_logs/2019-02-09T08_33_03_316Z-debug.log 2019-02-09T08:33:03.411224+00:00 heroku[web.1]: Process exited with status 1 package.json: { "name": "the-lottery-genie-mean", "version": "0.0.0", "scripts": { "preinstall": "npm link @angular/cli ", "heroku-postbuild": "ng build --prod", "postinstall": "", "ng": "ng", "start": "node server.js", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/cli": "^7.1.4", "@angular/compiler-cli": "~7.0.0", "@angular/animations": "~7.0.0", "@angular/common": "~7.0.0", "@angular/compiler": "~7.0.0", "@angular/core": "~7.0.0", "@angular/forms": "~7.0.0", "@angular/http": "~7.0.0", "@angular/platform-browser": "~7.0.0", "@angular/platform-browser-dynamic": "~7.0.0", "@angular/router": "~7.0.0", "core-js": "^2.5.4", "json": "^9.0.6", "rxjs": "~6.3.3", "zone.js": "~0.8.26" }, "devDependencies": { "@angular-devkit/build-angular": "^0.13.1", "@angular/language-service": "~7.0.0", "@types/jasmine": "~2.8.8", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "~4.5.0", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", "karma": "~3.0.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~1.1.2", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.11.0", "typescript": "~3.1.1" }, "engines": { "node": "10.15.1", "npm": "6.4.1" } }
})
4 Réponses :
Avez-vous vérifié le journal de débogage ici /app/.npm/_logs/2019-02-09T08_33_03_316Z-debug.log
?
Je suggère de consulter d'abord le journal de débogage pour nous en savoir plus détails pour résoudre le problème.
npm ERR! enoent ENOENT: no such file or directory
Votre application a planté. Voici ce que vous pouvez faire:
1.) Redémarrez heroku. Vous devriez avoir installé la CLI heroku. Voici le lien: Heroku CLI Install . Et lancez heroku restart
sur votre terminal.
2.) Utilisez le port que Heroku définit dynamiquement et qui est généralement accessible à process.env.PORT
, et définissez le port souhaité comme sauvegarde:
"engines": { "node": "10.15.1", "npm": "6.4.1" }
3.) Essayez de vérifier la version de votre nœud
et npm
en tapant dans votre terminal:
node --version npm --version
Et mettez à jour les versions node
et npm
indiquées sous votre fichier package.json: p>
app.listen(process.env.PORT || 3000, function(){ console.log("Node app is running at localhost:" + app.get('port')); });
Its an H10 error. "heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=angular-lottery-genie.herokuapp.com request_id=30e63a79-c395-4d2a-9987-938bcc350629 fwd="50.250.113.70" dyno= connect= service= status=503 bytes= protocol=https"
Ces erreurs sont généralement liées à la corruption ou à l'incompatibilité des packages. Ce que vous pouvez faire:
1.) Assurez-vous qu'aucune autre instance de node n'est en cours d'exécution dans le backgound et réessayez votre commande npm.
2.) Supprimez les node_modules et
package-lock.json
(si vous en avez). Réinstallez les packages exécutant npm install
(ou toute commande que vous utilisez pour installer les packages) dans votre terminal dans le répertoire de votre projet.
3.) Mettez à niveau le nœud vers la dernière version, supprimez le répertoire node_modules
et package-lock.json
, et réinstallez les packages.
4.) Si npm
le fait toujours ne fonctionne pas pour vous, essayez le gestionnaire de packages yarn
( Yarn ).
5.) Si l'installation des packages échoue toujours, vérifiez le fichier journal des erreurs pour un rapport détaillé de l'erreur.
J'espère que cela vous aidera!
Je ne peux pas faire de commentaire car je suis encore un débutant, désolé. Pouvez-vous ajouter le journal de débogage et je verrai ce que je peux faire pour vous aider. :)
heroku build log: + @ angular / cli @ 7.3.1 remote: ajout de 295 packages de 179 contributeurs dans 14.433s remote: / tmp / build_65b96372ee3e3abaf6f27c4e836c1557 / node_modules / @ an gular / cli -> /tmp/build_65b96372ee3c57nf6f6f6 / lib / node_modules / @ angul ar / cli remote: npm ERR! chemin /tmp/build_65b96372ee3e3abaf6f27c4e836c1557/node_modules/.st ageing / @ angular / cli-c f0b324f / node_modules / @ schematics / angular Je ne peux pas trouver où se trouve ce fichier.
C'est une erreur H10. "heroku [router]: at = error code = H10 desc =" App crashed "method = GET path =" / favicon.ico "host = angular-lottery-genie.herokuapp.com request_id = 30e63a79-c395-4d2a-9987- 938bcc350629 fwd = "50.250.113.70" dyno = connect = service = status = 503 octets = protocole = https "
Dans mon cas, j'ai besoin de définir PORT en dehors de listen (). Ex: const PORT = process.env.PORT || 3000;
puis app.listen (PORT, cb)
Merci, j'ai remarqué en essayant de définir une ancienne version du nœud dans l'onglet moteurs, il a continué à utiliser 10.15.1 qui semblait étrange. J'ai remarqué que lorsque je fais heroku --version, Heroku cli est livré avec sa propre version de node (11.9.0), que j'ai essayé de changer pour correspondre dans le package.json. Aussi un autre journal de construction npm ERR! enoent ENOENT: aucun fichier ou répertoire de ce type, renommez '/tmp/build_a71fe5a93776d909b8eafd56852942f0/node_modules/.s taging / @ angular / cli- cc14dd1a / node_module s / @ schematics03776d909b8eafd56852942f0/node_modules/. /node_modules/.s taging / @ schematics / a ngular-d146d3ec '
Salut @AlexanderMazilu, j'ai mis à jour ma réponse pour répondre à vos questions. J'espère que cela vous aidera. :)
Vous devrez peut-être ajouter le devkit / builder, assurez-vous qu'il est dans le bon ordre. Je l'ai ajouté en gras, alors assurez-vous que vous allez copier coller pour supprimer l'astérix du début et de la fin.
"@angular/cli": "^7.1.4", "@angular/compiler-cli": "~7.0.0", "@angular/animations": "~7.0.0", "@angular/common": "~7.0.0", "@angular/compiler": "~7.0.0", "@angular/core": "~7.0.0", "@angular/forms": "~7.0.0", "@angular/http": "~7.0.0", "@angular/platform-browser": "~7.0.0", "@angular/platform-browser-dynamic": "~7.0.0", "@angular/router": "~7.0.0", **"@angular-devkit/build-angular": "^0.13.1", "@angular/language-service": "~7.0.0",** "core-js": "^2.5.4", "json": "^9.0.6", "rxjs": "~6.3.3", "zone.js": "~0.8.26"
Je pense qu'il a besoin du kit de développement pour la construction (comme vous pouvez le voir sur angular.json). Je suis également à peu près sûr qu'heroku n'installe pas les dépendances de développement par défaut. Donc, quand il installe tout, il cherche ce module et ne peut pas le trouver.
déplacez certaines devDependencies
vers dépendances
(exemple angulaire 9)
npm i @angular/cli @angular-devkit/build-angular @angular/compiler-cli typescript --save-prod
ou définissez NPM_CONFIG_PRODUCTION
sur false
voici une réponse à une question similaire
D'après mon expérience, le déploiement d'une application qui fonctionne localement n'est pas toujours simple dans Heroku. Il existe plusieurs cas comme celui-ci dans StackOverflow sans solution définitive, spécialement liés à «'bibliothèque' introuvable». Pour quelqu'un avec un problème similaire (essayant de déployer AngularJS dans Heroku), je recommanderais de vérifier les premiers tutoriels fonctionnels comme ceux-ci:
heroku build log: + @ angular / cli @ 7.3.1 remote: ajout de 295 packages provenant de 179 contributeurs dans 14.433s remote: / tmp / build_65b96372ee3e3abaf6f27c4e836c1557 / node_modules / @ an gular / cli -> /tmp/build_65b96372ee3c57nf6f6f6 / lib / node_modules / @ angul ar / cli remote: npm ERR! chemin /tmp/build_65b96372ee3e3abaf6f27c4e836c1557/node_modules/.st vieillissement / @ angular / cli-c f0b324f / node_modules / @ schematics / angular
avez-vous vérifié cela? Commande stackoverflow.com/questions/37227794/...