Que signifie l'erreur ELIFECYCLE Node.js?


212

Que signifie ELIFECYCLE?

Voici mon code d'application: https://gist.github.com/samholmes/388ca4552c5936b52c5d

Lorsque j'exécute la commande 'blast-emails', elle s'exécute pendant un certain temps jusqu'à ce qu'elle se bloque rapidement avec l'erreur:

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

Le npm-debug.logfichier est également inclus dans l'essentiel.

Je cherche l'une des deux réponses: que signifie ELIFECYCLE? (ou) Pourquoi est-ce que j'obtiens l'erreur dans mon code d'application?


Je viens de recevoir la même erreur de mon processus de webpack (n'avait pas redémarré depuis quelques heures, et j'ai apporté une modification qui a cassé la construction du webpack). Sinon, je n'ai jamais vu l'erreur auparavant et le redémarrage du processus a résolu le problème.
— Ally

1
ps -ax | grep npm ..et tuer les processus npm ont fonctionné pour moi
— Buminda

Réponses:


62

Cela signifie essentiellement qu'il ne parvient pas à générer votre processus non pas en raison d'une autorisation mais d'une erreur dans votre script. La source

Vous n'avez aucun problème à exécuter NODE_ENV=production node app.js?


Je n'ai aucun problème à exécuter le script. En fait, cela fonctionne bien. Je n'obtiens cette erreur qu'en exécutant 'blast-emails' qui fait une boucle async.eachSeries et envoie des e-mails en utilisant nodemailer et le transport de mandrill que vous pouvez voir dans le code source. Serait-ce un problème avec nodemailer ou le transport?
— Sam

dans emailer.js, il y a des références à une fonction "erreur" mais je ne la trouve pas.
— Pierre Inglebert

quelle fonction dans emailer.js?
— Sam


La fonction d'erreur est définie ci-dessous dans cette étendue: gist.github.com/samholmes/388ca4552c5936b52c5d#file-app-js-L81
— Sam

43

On pourrait penser que c'est à cause des versions obsolètes de npm et de node, mais ce n'est pas le cas.

Tout comme Pierre Inglebert le dit, si vous regardez dans la source, vous pouvez voir que cela End of lifecyclesignifie que le programme s'est arrêté de manière inattendue . Cela peut avoir plusieurs raisons. Ce n'est donc pas une erreur de syntaxe ni une exception / erreur attendue.

L'erreur m'est apparue lorsqu'un autre outil utilisait déjà le port http (3000) défini dans mes scripts de noeud. Lorsque vous exécutez votre application de nœud sur le port 80, assurez-vous d'avoir arrêté le serveur Web Apache (par exemple).


2
Idem pour moi, le port a été utilisé par un autre programme
— traque

Ensuite, vous pouvez aller sur stackoverflow.com/questions/39632667/…
— estellezg

1
Dans mon cas, je n'ai pas remarqué l' Error: listen EADDRINUSE :::3000avertissement
— Estellezg

1
L'erreur est vraiment ambiguë si vous utilisez une ancienne version de node / npm, je pensais que je devais mettre à niveau, à la place, c'était simplement un téléchargement qui échouait
— Alex

13

En travaillant sur un thème WordPress, j'ai eu la même ELIFECYCLEerreur avec une sortie légèrement différente:

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! noeud v7.6.0
npm ERR! npm v3.7.3
npm ERR! code ELIFECYCLE
npm ERR! foundationix@1.0.0 postinstall: `bower install && gulp build`
npm ERR! Statut de sortie 1
npm ERR! 
npm ERR! Échec du script de post-installation foundationix@1.0.0 'bower install && gulp build'.
npm ERR! Assurez-vous que la dernière version de node.js et npm est installée.
npm ERR! Si vous le faites, c'est très probablement un problème avec le package de fondationsix,
npm ERR! pas avec npm lui-même.
npm ERR! Dites à l'auteur que cela échoue sur votre système:
npm ERR! bower install && gulp build

Après avoir essayé encore npm installune fois avec le même résultat, j'ai essayé bower install. Lorsque cela a réussi, j'ai essayé gulp buildet cela a aussi fonctionné.

Tout fonctionne très bien maintenant. Aucune idée pourquoi l'exécution de chaque commande séparément a fonctionné en cas d' &&échec, mais peut-être que quelqu'un d'autre trouvera cette réponse utile.


@Matthew Read - Comment avez-vous reformaté ce bloc de code? C'est une nette amélioration, mais je ne sais pas comment le faire moi-même ... Je pense que j'avais l'habitude d'utiliser 3 ticks arrière, appuyez sur "Entrée" pour une nouvelle ligne, puis mon code (suivi de "Entrée" et 3 ticks arrière pour fermer le bloc de code), mais cela ne semble plus fonctionner pour moi. Des pointeurs?
— adam-asdf

Si vous cliquez sur "Modifier il y a X heures / jours" au-dessus de mon nom, puis cliquez sur "source", il vous montrera! Juste une balise de texte préformatée. L'autre option aurait été de mettre en retrait chaque ligne de 4 espaces. Stack Overflow ne prend pas en charge la syntaxe triple-backtick comme GitHub / Slack / etc. - votre mise en forme a fini par être interprétée comme trois blocs consécutifs simples, le premier et le dernier étant complètement vides (c'est pourquoi la première ligne était très légèrement en retrait et la dernière ligne avait un tout petit espace en surbrillance à la fin) .
— Matthew Read

Dans mon cas, j'ai oublié de courir npm install(je suis nouveau sur node.js). Votre réponse m'a conduit dans la bonne direction. Merci.
— Kon

13

Dans mon cas, c'était à cause de la mémoire RAM insuffisante, lorsqu'une bibliothèque de compression de photos n'était pas en mesure de traiter de plus grandes photos.


1
J'ai le même problème, c'est à cause du manque de mémoire.
— Envil

2
Même! Il semble que ELIFECYCLE errno 137 peut également être causé par un manque de mémoire. Dans mon cas, mon serveur avait 1 Go de RAM. Je l'ai mis à 2 Go et ma version est passée.
— Firze

1
J'ai couru npm run watchsous Docker et j'ai eu l'erreur de la question. Lorsque j'ai augmenté la mémoire et les limites du processeur de Docker, le problème a disparu.
— Paul Basenko

5

Si vous êtes venu ici comme je l'ai fait, après avoir reçu une erreur similaire en essayant le guide de démarrage de React , vous aimerez peut-être savoir que le problème pourrait avoir été causé par le fait de ne pas avoir installé Watchman. Téléchargez-le ici, ou installez-le avec Homebrew avec brew install watchmanet réessayez: https://facebook.github.io/watchman/docs/install.html

PS: Vous voudrez peut-être faire une brew updatepremière.


Merci ... d'essayer d'apprendre comment construire la réaction de quelqu'un d'autre. L'enregistrement github natif a été brutal. Autant d'étapes d'installation mal documentées!
— Dronz

1
@Dronz Ouais, apparemment .. Je ne sais pas pourquoi.
— Magne

1
@Dronz Pas sûr. J'en avais besoin sur mon Mac.
— Magne

1
Merci. Cela ne semble pas nécessaire sous Windows.
— Dronz

1
Je configurais un modèle pré-construit dans WordPress pour le récupérer avec l'équipe de développement, j'ai eu la même erreur et changer la ligne a cwd: parseInt(process.versions.node) < 8 ? process.cwd : process.cwd()supprimé l'erreur mais en a généré une autre ... a brew updatefonctionné pour moi.
— shimanyi


4
à process._tickCallback (internal / process / next_tick.js: 10
4: 9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! Exemple ng-contact-manager@0.0.0: `node src / server / dat
a / seed-db.js »
npm ERR! Statut de sortie 1
npm ERR!
npm ERR! Échec de l'exemple de script ng-contact-manager@0.0.0.
npm ERR! Ce n'est probablement pas un problème avec npm. Il y a lik
ely sortie de journalisation supplémentaire ci-dessus.

npm ERR! Un journal complet de cette course peut être trouvé dans:

J'ai le même problème ici, c'est comment j'ai finalement été résolu! l'erreur: mon erreur du terminal lorsque je cours npm run sample après avoir corrigé mon nom d'utilisateur et mon mot de passe de connexion à la base de données J'utilisais mlab pour ma base de données et sous le fichier .env, j'oublie de mettre correctement le nom d'utilisateur et le mot de passe. Quand je corrige, je travaille.

> ng-contact-manager@0.0.0 sample /Users/mohammedr.kemal/Downl
oads / Ex_Files_ANGULAR_API_AUTH / Fichiers d'exercices / Ch01 / 01_04 / start
> noeud src / server / data / seed-db.js

connecté à mongodb ...
connecté à mongodb ...
2 enregistrements insérés.
fermeture de la connexion ...
terminé.
12 enregistrements insérés.
fermeture de la connexion ...
terminé.

Donc, il pourrait être bon de regarder toute connexion de données que nous avons établie dans notre code si nous l'avons.


3

J'ai eu la même erreur après avoir installé de nouveaux packages ou les mis à jour:

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

Cela m'a aidé à exécuter la commande d'installation une fois de plus ou plusieurs fois. Après cela, l'erreur a disparu.


2

J'ai eu ce problème lorsque j'exécutais deux projets qui avaient la même configuration et j'en avais déjà un en cours. Cela signifiait que l'autre projet ne pouvait pas utiliser ce numéro de port. Dès que j'ai arrêté l'exécution de l'autre projet, je n'ai eu aucun problème.


1

Dans mon cas, c'était un problème d'autorisation avec Linux, au lieu d'écrire:

npm run start

J'ai essayé:

sudo npm run start

Ensuite, entrez votre mot de passe utilisateur sudo et vous êtes prêt à partir!


1

La solution Windows est la même que la réponse sudo Linux. Exécutez le démarrage npm (ou autre) en tant qu'administrateur. J'avais ajouté un nouveau module à mon projet. A travaillé sur certaines machines mais sur d'autres qui étaient plus verrouillées, pas tellement. Il a fallu un certain temps pour le comprendre, mais le nouveau module avait besoin d'accéder à "quelque chose" qui n'était pas disponible sans les autorisations d'administrateur.


0

J'ai eu le même code d'erreur lorsque j'exécutais npm run build à l' intérieur du conteneur Docker de noeud.

Localement, cela fonctionnait alors que dans un conteneur, j'avais défini l'option de lancer une erreur lorsqu'il y a un avertissement lors de la compilation alors que localement il n'était pas défini. Cette erreur peut donc signifier tout ce qui est lié à l'arrêt du processus effectué par NPM


0

Dans mon cas, j'ai généré une erreur similaire lorsque j'ai copié le projet à partir d'un autre répertoire. certains fichiers cachés, comme le .babelrc critique, manquaient. Alors ahhh ... assurez-vous de copier tous les fichiers! :)


0

Ce problème peut également se produire lorsque vous extrayez du code de git et que vous n'avez pas encore installé les modules de noeud "npm install".


0

Pour moi, c'était une déclaration ternaire:

Il se plaignait de cette ligne en particulier, du point-virgule:

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

Je l'ai changé en:

let num_coin = val.num_coin || 2;
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.