ELIFECYCLE Node.js错误是什么意思?

240

"ELIFECYCLE" 是什么意思?

这是我的应用程序代码:https://gist.github.com/samholmes/388ca4552c5936b52c5d

当我运行 'blast-emails' 命令时,它会运行一段时间,然后很快崩溃并显示以下错误:

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

npm-debug.log文件也包含在Gist中。

我正在寻找两个答案中的一个:ELIFECYCLE是什么意思?(或者)为什么我的应用程序代码出现错误?


刚刚从我的webpack进程收到了相同的错误(几个小时没有重新启动,然后我进行了一个破坏webpack构建的更改)。除此之外,我以前从未见过这种错误,并且重新启动进程解决了问题。 - Ally
2
ps -ax | grep npm ..并杀死npm进程对我有用 - Buminda
18个回答

69

这基本上是说它无法生成你的进程,不是因为权限问题,而是由于你的脚本出现错误。 来源

你执行NODE_ENV=production node app.js没有任何问题吗?


我在执行脚本时没有任何问题。实际上,它运行得很好。只有在运行“blast-emails”时才会出现此错误,该程序使用nodemailer和mandrill传输进行异步.eachSeries循环并发送电子邮件,正如您在源代码中所看到的那样。这可能是nodemailer或传输的问题吗? - Sam
在emailer.js中,有对'error'函数的引用,但我找不到它。 - Pierre Inglebert
emailer.js 中的哪个函数? - Sam
请参考以下链接中的代码:https://gist.github.com/samholmes/388ca4552c5936b52c5d#file-app-js-L57 - Pierre Inglebert
也许问题在于 Replicon 中运行的命令运行时间太长了? - Sam
显示剩余6条评论

48

有人可能会认为这是因为使用了过时版本的npm和node,但实际情况并非如此。

正如Pierre Inglebert所说,如果你查看源代码,你可以看到“生命周期结束”意味着程序意外停止。这可能有各种原因。因此它不是语法错误,也不是预期的异常/错误。

当我定义的节点脚本中的http端口(3000)已被其他工具使用时,出现了这个错误。当您在端口80上运行您的节点应用程序时,请确保已停止Apache webserver(例如)。


2
对我来说也一样,这个端口被另一个程序使用了。 - stalk
然后你可以访问 https://dev59.com/K1kS5IYBdhLWcg3wl36I,了解如何在Windows上终止当前正在使用的本地端口。 - hestellezg
1
在我的情况下,我没有注意到Error:listen EADDRINUSE :::3000警告。 - hestellezg
1
如果你使用的是旧版本的node/npm,那么错误信息会非常模糊。我曾经以为需要升级,但实际上只是下载失败了。 - Alex

26
在我的情况下,是由于内存不足,当照片压缩库无法处理更大的照片时发生的。

1
我遇到了同样的问题,这是由于内存不足引起的。 - Envil
3
一样!看起来 ELIFECYCLE 错误代码 137 也可能是因为内存耗尽导致的。在我的情况下,我的服务器只有1GB的内存。将其升级到2GB后,我的构建就通过了。 - Firze
1
我在 Docker 中运行了 npm run watch 命令,但是遇到了问题。当我增加了 Docker 的内存和 CPU 限制时,问题就解决了。 - Paul Basenko
我曾经遇到过同样的问题。这是我如何解决内存短缺的方法:https://dev59.com/KGIj5IYBdhLWcg3wEhQA#34998803 - Balmipour
是的,内存不足问题在这里也是个问题。 - Tahbaza

14
在开发WordPress主题时,我遇到了相同的ELIFECYCLE错误,但输出略有不同:
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! node 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! Exit status 1
npm ERR! 
npm ERR! 在foundationsix@1.0.0 postinstall脚本中,执行'bower install && gulp build'失败。
npm ERR! 确保您已安装最新版本的node.js和npm。
npm ERR! 如果已经安装,那么这很可能是与foundationsix软件包有关,而不是npm本身的问题。
npm ERR! 告诉作者在您的系统上出现此问题:
npm ERR!     bower install && gulp build

再次尝试使用npm install结果相同,我尝试了bower install。当它成功后,我尝试了gulp build,也成功了。

现在一切都正常工作。不知道为什么分别运行每个命令可以成功,但是执行&&时会失败,也许其他人会发现这个答案有用。


@Matthew Read - 你是如何重新格式化那个代码块的?这确实有所改善,但我不确定该如何做...我想我曾经使用三个反引号,按“Enter”键进行换行,然后输入我的代码(后面跟着“Enter”和三个反引号来关闭代码块),但现在这种方法似乎不再适用于我了。有什么提示吗? - adam-asdf
如果你点击上面我的名字旁边的“X小时/天前编辑”,然后点击“源代码”,它会显示给你看!只是一个预格式化文本标签。另一个选项是将每行缩进4个空格。Stack Overflow不支持三重反引号语法,如GitHub/Slack等。你的格式最终被解释为三个连续的单引号块,第一个和最后一个完全为空(这就是为什么第一行非常轻微地缩进,最后一行在末尾有一点点高亮空间的原因)。 - Matthew Read
在我的情况下,我忘记运行 npm install(我是node.js的新手)。你的答案让我朝着正确的方向前进。谢谢。 - Kon

6
当运行Webpack构建时,我遇到了类似的错误,因为旧版本的node不理解asyncawait关键字。 我添加了Webpack babel-plugin-transform-async-to-generator插件,问题得到了解决。这将使用promises替换它们。

6
如果您像我一样在尝试React 入门指南时收到类似错误并来到这里,那么您可能想知道问题可能是由于没有安装Watchman导致的。您可以从这里下载它,或使用Homebrew安装brew install watchman并重试。

PS:您可能需要先执行brew update


谢谢...尝试学习如何构建别人的React.Native Github检查一直很艰难。有太多不准确记录的设置步骤! - Dronz
1
@Dronz 是的,显然...不知道为什么。 - Magne
1
@Dronz 不确定。我需要在我的 Mac 上用它。 - Magne
1
谢谢。在Windows上似乎不需要它。 - Dronz
1
我正在配置一个预先构建的WordPress模板,以便与开发团队一起使用,但遇到了相同的错误。更改行cwd: parseInt(process.versions.node) < 8 ? process.cwd : process.cwd()可以抑制该错误,但会生成另一个错误...对我来说,brew update解决了问题。 - Shimanyi Valentino
显示剩余2条评论

5
错误信息:
at process._tickCallback (internal/process/next_tick.js:10
4:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ng-contact-manager@0.0.0 sample: `node src/server/dat
a/seed-db.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ng-contact-manager@0.0.0 sample script.
npm ERR! This is probably not a problem with npm. There is lik
ely additional logging output above.
npm ERR! A complete log of this run can be found in:

我也遇到过同样的问题,下面是我最终解决方法:

错误信息:

当我运行npm run sample时从终端获得的错误信息。 在更正我的数据库连接用户名和密码后

我使用了mlab作为我的数据库,但在文件.env中,我忘记正确输入用户名和密码。更正之后就可以了。

> ng-contact-manager@0.0.0 sample /Users/mohammedr.kemal/Downl
oads/Ex_Files_ANGULAR_API_AUTH/Exercise Files/Ch01/01_04/start
> node src/server/data/seed-db.js
connected to mongodb... connected to mongodb... 插入了2条记录。 closing connection... 完成。 插入了12条记录。 closing connection... 完成。

所以,如果我们在代码中进行任何数据连接,最好检查一下。


4
我安装新的软件包或更新软件包后遇到了相同的错误:
...
npm ERR! code ELIFECYCLE
npm ERR! errno 1
...

我重新运行了安装命令一次或多次,这样错误就消失了。


3

当我运行两个设置相同的项目时,遇到了这个问题。由于已经有一个项目在运行,因此另一个项目无法使用该端口号。只要停止另一个正在运行的项目,我就没有问题了。


2
这个问题也可能发生在你从git拉取代码,但还没有安装node模块"npm install"的情况下。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接