Was bedeutet der Fehler ELIFECYCLE Node.js?


211

Was bedeutet ELIFECYCLE?

Hier ist mein App-Code: https://gist.github.com/samholmes/388ca4552c5936b52c5d

Wenn ich den Befehl 'blast-email' ausführe, wird er eine Weile ausgeführt, bis er kurz mit dem Fehler abstürzt:

npm ERR! Linux 3.2.0-4-amd64
npm ERR! argv "/root/.nvm/versions/io.js/v1.6.1/bin/iojs" "/root/.nvm/versions/io.js/v1.6.1/bin/npm" "run" "live"
npm ERR! node v1.6.1
npm ERR! npm  v2.7.1
npm ERR! code ELIFECYCLE
npm ERR! emailer@0.0.0 live: `NODE_ENV=production node app.js`
npm ERR! Exit status 137
npm ERR! 
npm ERR! Failed at the emailer@0.0.0 live script 'NODE_ENV=production node app.js'.
npm ERR! This is most likely a problem with the emailer package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     NODE_ENV=production node app.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls emailer
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /apps/emailer/npm-debug.log

Die npm-debug.logDatei ist auch im Kern enthalten.

Ich suche nach einer von zwei Antworten: Was bedeutet ELIFECYCLE? (oder) Warum erhalte ich den Fehler in meinem Anwendungscode?


Ich habe gerade den gleichen Fehler von meinem Webpack-Prozess erhalten (war seit einigen Stunden nicht mehr neu gestartet worden und habe eine Änderung vorgenommen, die den Webpack-Build beschädigt hat). Ansonsten habe ich den Fehler noch nie gesehen, und ein Neustart des Prozesses hat das Problem behoben.
Verbündeter

1
ps -ax | grep npm ..und töte die npm Prozesse, die für mich gearbeitet haben
Buminda

Antworten:


62

Grundsätzlich heißt es, dass Ihr Prozess nicht aufgrund einer Berechtigung, sondern aufgrund eines Fehlers in Ihrem Skript nicht erzeugt werden kann. Quelle

Sie haben keine Probleme bei der Ausführung NODE_ENV=production node app.js?


Ich habe keine Probleme beim Ausführen des Skripts. In der Tat funktioniert es gut. Ich erhalte diesen Fehler nur, wenn 'Blast-E-Mails' ausgeführt werden, die eine async.eachSeries-Schleife ausführen und E-Mails mit Nodemailer und dem Mandrill-Transport versenden, den Sie im Quellcode sehen können. Könnte es ein Problem mit Nodemailer oder dem Transport sein?
Sam

In emailer.js gibt es Verweise auf eine 'Fehler'-Funktion, aber ich kann sie nicht finden.
Pierre Inglebert

Welche Funktion in emailer.js?
Sam


Die Fehlerfunktion wird unten in diesem Bereich definiert: gist.github.com/samholmes/388ca4552c5936b52c5d#file-app-js-L81
Sam

43

Man könnte denken, dass dies an veralteten Versionen von npm und node liegt, aber das ist nicht der Fall.

Genau wie Pierre Inglebert sagt, wenn Sie in die Quelle schauen, können Sie sehen, dass End of lifecycledas Programm unerwartet gestoppt wurde. Dies kann verschiedene Gründe haben. Es handelt sich also nicht um einen Syntaxfehler und nicht um eine erwartete Ausnahme / einen erwarteten Fehler.

Der Fehler trat mir auf, als ein anderes Tool bereits den in meinen Knotenskripten definierten http-Port (3000) verwendete. Wenn Sie Ihre Node-App auf Port 80 ausführen, stellen Sie sicher, dass Sie den Apache-Webserver gestoppt haben (als Beispiel).


2
Das gleiche gilt für mich, der Port wurde von einem anderen Programm verwendet
Stalk


1
In meinem Fall habe ich die Error: listen EADDRINUSE :::3000Warnung nicht bemerkt
estellezg

1
Der Fehler ist wirklich mehrdeutig, wenn Sie eine alte Version von node / npm verwenden. Ich dachte, ich müsste ein Upgrade durchführen, stattdessen ist einfach ein Download fehlgeschlagen
Alex

13

Bei der Arbeit an einem WordPress-Theme habe ich den gleichen ELIFECYCLEFehler mit etwas anderer Ausgabe erhalten:

npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/Cellar/node/7.6.0/bin/node" "/ usr / local / bin / npm" "install"
npm ERR! Knoten v7.6.0
npm ERR! npm v3.7.3
npm ERR! Code ELIFECYCLE
npm ERR! foundationsix@1.0.0 postinstall: `bower install && gulp build`
npm ERR! Beenden Sie den Status 1
npm ERR! 
npm ERR! Fehler beim Nachinstallationsskript 'bower install && gulp build' von foundationsix@1.0.0.
npm ERR! Stellen Sie sicher, dass Sie die neueste Version von node.js und npm installiert haben.
npm ERR! Wenn Sie dies tun, ist dies höchstwahrscheinlich ein Problem mit dem Foundationsix-Paket.
npm ERR! nicht mit npm selbst.
npm ERR! Teilen Sie dem Autor mit, dass dies auf Ihrem System fehlschlägt:
npm ERR! Laube installieren && schlucken bauen

Nachdem npm installich es noch einmal mit dem gleichen Ergebnis versucht hatte, versuchte ich es bower install. Als das erfolgreich war, habe ich es versucht gulp buildund das hat auch funktioniert.

Jetzt funktioniert alles einwandfrei. Keine Ahnung, warum das Ausführen jedes Befehls einzeln funktioniert hat, wenn dies &&fehlgeschlagen ist, aber möglicherweise findet jemand anderes diese Antwort hilfreich.


@Matthew Read - Wie haben Sie diesen Codeblock neu formatiert? Es ist definitiv eine Verbesserung, aber ich bin mir nicht sicher, wie ich es selbst machen soll ... Ich glaube, ich habe früher 3 Back Ticks verwendet, für eine neue Zeile die Eingabetaste gedrückt und dann meinen Code (gefolgt von Enter und 3 Back Ticks) um den Codeblock zu schließen), aber das scheint für mich nicht mehr zu funktionieren. Zeiger?
Adam-Asdf

Wenn Sie dort über meinem Namen auf "Vor X Stunden / Tagen bearbeiten" klicken und dann auf "Quelle" klicken, wird dies angezeigt! Nur ein vorformatiertes Text-Tag. Die andere Möglichkeit wäre gewesen, jede Zeile um 4 Leerzeichen einzurücken. Stack Overflow unterstützt die Triple-Backtick-Syntax wie GitHub / Slack / etc. Nicht. - Ihre Formatierung wurde als drei aufeinanderfolgende Blöcke mit einem Backtick interpretiert, wobei der erste und der letzte vollständig leer waren (weshalb die erste Zeile sehr leicht eingerückt war und die letzte Zeile am Ende ein kleines Stück hervorgehobenes Leerzeichen aufwies). .
Matthew Read

In meinem Fall habe ich vergessen zu laufen npm install(ich bin neu in node.js). Ihre Antwort führte mich in die richtige Richtung. Vielen Dank.
Kon

13

In meinem Fall lag es an einem geringen RAM-Speicher, als eine Fotokomprimierungsbibliothek keine größeren Fotos verarbeiten konnte.


1
Ich habe das gleiche Problem, es ist wegen des Speichermangels.
Envil

2
Gleich! Es scheint, dass ELIFECYCLE errno 137 auch durch Speichermangel verursacht werden kann. In meinem Fall hatte mein Server 1 GB RAM. Upgrade auf 2 GB und mein Build bestanden.
Firze

1
Ich lief npm run watchunter Docker und bekam den Fehler von der Frage. Als ich die Speicher- und CPU-Grenzen von Docker erhöht habe, ist das Problem behoben.
Paul Basenko

5

Wenn Sie wie ich hierher gekommen sind, nachdem Sie beim Ausprobieren des Handbuchs "Erste Schritte mit dem Reaktieren" einen ähnlichen Fehler erhalten haben, möchten Sie möglicherweise wissen, dass das Problem möglicherweise dadurch verursacht wurde, dass Watchman nicht installiert wurde. Laden Sie es hier herunter oder installieren Sie es mit Homebrew mit brew install watchmanund versuchen Sie es erneut: https://facebook.github.io/watchman/docs/install.html

PS: Vielleicht möchten Sie eine brew updateerste machen.


Danke ... der Versuch zu lernen, wie man die Reaktion eines anderen aufbaut. Das native Github-Check-in war brutal. So viele ungenau dokumentierte Einrichtungsschritte!
Dronz

1
@Dronz Ja, anscheinend .. Weiß nicht warum.
Magne

1
@Dronz Ich bin mir nicht sicher. Ich brauchte es auf meinem Mac.
Magne

1
Vielen Dank. Es scheint unter Windows nicht benötigt zu werden.
Dronz

1
Ich habe eine vorgefertigte Vorlage in WordPress konfiguriert, um sie mit dem Entwicklungsteam aufzunehmen, habe den gleichen Fehler erhalten und das Ändern der Zeile hat cwd: parseInt(process.versions.node) < 8 ? process.cwd : process.cwd()den Fehler unterdrückt, aber eine andere generiert ... brew updatehat für mich funktioniert.
Shimanyi


4
at process._tickCallback (intern / process / next_tick.js: 10
4: 9)
npm ERR! Code ELIFECYCLE
npm ERR! errno 1
npm ERR! ng-contact-manager@0.0.0 Beispiel: `node src / server / dat
a / seed-db.js`
npm ERR! Beenden Sie den Status 1
npm ERR!
npm ERR! Fehler beim Beispielskript ng-contact-manager@0.0.0.
npm ERR! Dies ist wahrscheinlich kein Problem mit npm. Es gibt lik
ely zusätzliche Protokollausgabe oben.

npm ERR! Ein vollständiges Protokoll dieses Laufs finden Sie in:

Ich habe das gleiche Problem hier ist, wie ich endlich gelöst wurde! Der Fehler: Mein Fehler vom Terminal, wenn ich npm run sample nach der Korrektur meines Datenbankverbindungs-Benutzernamens und -Kennworts ausgeführt werde. Ich habe mlab für meine Datenbank verwendet und unter der Datei .env habe ich vergessen, den Benutzernamen und das Kennwort richtig einzugeben. Wenn ich das korrigiere, arbeite ich.

> ng-contact-manager@0.0.0 sample /Users/mohammedr.kemal/Downl
oads / Ex_Files_ANGULAR_API_AUTH / Übungsdateien / Ch01 / 01_04 / start
> Knoten src / server / data / seed-db.js

verbunden mit mongodb ...
verbunden mit mongodb ...
2 Datensätze eingefügt.
Verbindung schließen ...
getan.
12 Datensätze eingefügt.
Verbindung schließen ...
getan.

Es könnte also gut sein, nach einer Datenverbindung zu suchen, die wir in unserem Code hergestellt haben, wenn wir eine haben.


3

Ich hatte den gleichen Fehler, nachdem ich neue Pakete installiert oder aktualisiert hatte:

...
npm ERR! code ELIFECYCLE
npm ERR! errno 1
...

Es hat mir geholfen, den Installationsbefehl noch einmal oder ein paar Mal auszuführen. Danach verschwand der Fehler.


2

Ich hatte dieses Problem, als ich zwei Projekte mit demselben Setup ausführte und bereits eines ausführte. Dies bedeutete, dass das andere Projekt diese Portnummer nicht verwenden konnte. Sobald ich das andere Projekt gestoppt hatte, hatte ich keine Probleme mehr.


1

In meinem Fall war es ein Berechtigungsproblem mit Linux, anstatt zu schreiben:

npm run start

Ich habe es versucht:

sudo npm run start

Geben Sie dann Ihr sudo-Benutzerpasswort ein und los geht's!


1

Die Windows-Lösung entspricht der Linux-Sudo-Antwort. Führen Sie den npm-Start (oder was auch immer) als Administrator aus. Ich hatte meinem Projekt ein neues Modul hinzugefügt. Arbeitete auf einigen Maschinen, aber auf anderen, die eher gesperrt waren, nicht so sehr. Es hat eine Weile gedauert, um es herauszufinden, aber das neue Modul benötigte Zugriff auf "etwas", das ohne Administratorrechte nicht verfügbar war.


0

Ich hatte den gleichen Fehlercode, als ich npm run build im Node Docker Container ausführte.

Lokal funktionierte es, während ich mich in einem Container befand. Ich hatte die Option gesetzt, einen Fehler auszulösen, wenn während der Kompilierung eine Warnung angezeigt wurde, während es lokal nicht gesetzt war. Dieser Fehler kann also alles bedeuten, was mit dem Stoppen des von NPM ausgeführten Prozesses verbunden ist


0

In meinem Fall habe ich einen ähnlichen Fehler generiert, als ich das Projekt aus einem anderen Verzeichnis kopiert habe. Einige versteckte Dateien, wie die kritische .babelrc, fehlten. SO ahhh ... stellen Sie sicher, dass Sie alle Dateien kopieren! :) :)


0

Dieses Problem kann auch auftreten, wenn Sie Code aus git und noch nicht installierten Knotenmodulen "npm install" abrufen.


0

Für mich war es eine ternäre Aussage:

Es beschwerte sich insbesondere über diese Zeile, über das Semikolon:

let num_coin = val.num_coin ? val.num_coin || 2;

Ich habe es geändert in:

let num_coin = val.num_coin || 2;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.