4
votes

Échec du déploiement de Heroku: sh: 1: ng: introuvable

É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"
  }
}

})


2 commentaires

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/...


4 Réponses :


1
votes

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.

MISE À JOUR

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'));
});

Encore une MISE À JOUR pour vos questions:

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!


6 commentaires

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. :)



1
votes

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"


1 commentaires

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.



0
votes

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


0 commentaires

0
votes

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:


0 commentaires