ELIFECYCLE Node.js 错误是啥意思?

Posted

技术标签:

【中文标题】ELIFECYCLE Node.js 错误是啥意思?【英文标题】:What does the ELIFECYCLE Node.js error mean?ELIFECYCLE Node.js 错误是什么意思? 【发布时间】:2015-08-25 00:48:44 【问题描述】:

生命周期是什么意思?

这是我的应用代码: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 构建的更改)。否则我以前从未见过该错误,重新启动该过程即可解决问题。 ps -ax | grep npm ..并杀死为我工作的 npm 进程 【参考方案1】:

这基本上是说它无法生成您的进程不是由于许可而是由于您的脚本中的错误。 Source

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

【讨论】:

执行脚本没有任何问题。事实上,它工作得很好。我只在运行“blast-emails”时遇到此错误,它执行 async.eachSeries 循环并使用 nodemailer 和山魈传输发送电子邮件,您可以在源代码中看到。会不会是 nodemailer 或传输的问题? 在 emailer.js 中,有对“错误”功能的引用,但我找不到它。 emailer.js 中的哪个函数? 这个例如:gist.github.com/samholmes/388ca4552c5936b52c5d#file-app-js-L57 错误函数在该范围内定义如下:gist.github.com/samholmes/388ca4552c5936b52c5d#file-app-js-L81【参考方案2】:

有人可能认为这是因为 npm 和 node 版本过时,但事实并非如此。

正如 Pierre Inglebert 所说,如果您查看源代码,您会发现 End of lifecycle 表示程序意外停止了。这可能有多种原因。所以这不是语法错误,也不是预期的异常/错误。

当另一个工具已经在使用我的节点脚本中定义的 http 端口 (3000) 时,我出现了该错误。当您在端口 80 上运行节点应用程序时,请确保您已停止 Apache 网络服务器(例如)。

【讨论】:

我也一样,端口被另一个程序使用了 那你可以去***.com/questions/39632667/… 就我而言,我没有注意到Error: listen EADDRINUSE :::3000 警告 如果你使用的是旧版本的node/npm,这个错误真的很模糊,我以为我必须升级,而不是它只是下载失败【参考方案3】:

在处理 WordPress 主题时,我遇到了相同的 ELIFECYCLE 错误,但输出略有不同:

npm 错误!达尔文 14.5.0 npm 错误! argv "/usr/local/Cellar/node/7.6.0/bin/node" "/usr/local/bin/npm" "安装" npm 错误!节点 v7.6.0 npm 错误! npm v3.7.3 npm 错误!代码生命周期 npm 错误! Foundationsix@1.0.0 安装后:`bower install && gulp build` npm 错误!退出状态 1 npm 错误! npm 错误!在foundationsix@1.0.0 安装后脚本“bower install && gulp build”中失败。 npm 错误!确保您安装了最新版本的 node.js 和 npm。 npm 错误!如果你这样做了,这很可能是基础六包的问题, npm 错误!不是 npm 本身。 npm 错误!告诉作者这在您的系统上失败: npm 错误!凉亭安装 && gulp 构建

在再次尝试npm install 得到相同结果后,我尝试了bower install。当那成功时,我尝试了gulp build,这也奏效了。

现在一切正常。不知道为什么在 && 失败时单独运行每个命令会起作用,但也许其他人会发现这个答案很有用。

【讨论】:

@Matthew Read - 你是如何重新格式化那个代码块的?这是一个明显的改进,但我不知道自己该怎么做......我想我曾经使用 3 个反引号,点击“输入”换行,然后是我的代码(后面是“输入”和 3 个反引号关闭代码块),但这似乎不再适合我了。指针? 如果你点击我名字上方的“编辑X小时/天前”,然后点击“来源”,它会显示给你!只是一个预先格式化的文本标签。另一种选择是每行缩进 4 个空格。 Stack Overflow 不支持 GitHub/Slack/etc 等三重反引号语法。 - 您的格式最终被解释为三个连续的单反引号块,第一个和最后一个完全为空(这就是为什么第一行缩进非常轻微,最后一行最后有一点突出显示的空间) . 就我而言,我忘了运行npm install(我是node.js 的新手)。您的回答使我朝着正确的方向前进。谢谢。【参考方案4】: 在 process._tickCallback (internal/process/next_tick.js:10 4:9) npm 错误!代码生命周期 npm 错误!错误号 1 npm 错误! ng-contact-manager@0.0.0 示例:`node src/server/dat a/seed-db.js` npm 错误!退出状态 1 npm 错误! npm 错误!在 ng-contact-manager@0.0.0 示例脚本中失败。 npm 错误!这可能不是 npm 的问题。有喜欢 上面还有额外的日志输出。 npm 错误!可以在以下位置找到此运行的完整日志:

我有同样的问题,我终于解决了! 错误: my error from the terminal when i run npm run sample after correcting my database connection username and password 我在我的数据库中使用 mlab,在 .env 文件下我忘记正确输入用户名和密码。当我纠正我的工作时。

> ng-contact-manager@0.0.0 示例 /Users/mohammedr.kemal/Downl oads/Ex_Files_ANGULAR_API_AUTH/Exercise Files/Ch01/01_04/start > 节点 src/server/data/seed-db.js 连接到mongodb... 连接到mongodb... 插入 2 条记录。 关闭连接... 完毕。 插入了 12 条记录。 关闭连接... 完毕。

因此,如果有的话,看看我们在代码中建立的任何数据连接可能会很好。

【讨论】:

【参考方案5】:

在运行 Webpack 构建时,我遇到了类似的错误,因为节点不理解旧版本上的 async await 关键字。我添加了 webpack babel-plugin-transform-async-to-generator 并解决了。这会用 Promise 替换它们。

【讨论】:

【参考方案6】:

如果您像我一样来到这里,在尝试React Getting Started guide 时收到类似错误后,您可能想知道问题可能是由于未安装 Watchman 造成的。在此处下载,或使用 Homebrew 安装它并使用 brew install watchman 重试:https://facebook.github.io/watchman/docs/install.html

PS:你可能想先做一个brew update

【讨论】:

谢谢...尝试学习如何构建其他人的 react.native github checkin 非常残酷。太多记录不准确的设置步骤! @Dronz 是的,显然......不知道为什么。 @Dronz 不确定。我在我的 Mac 上需要它。 谢谢。在 Windows 上似乎不需要它。 我在 WordPress 中配置了一个预先构建的模板以与开发团队合作,得到了同样的错误并更改了 cwd: parseInt(process.versions.node) < 8 ? process.cwd : process.cwd() 行抑制了错误但产生了另一个错误...brew update为我工作。【参考方案7】:

我在安装或更新新软件包后遇到了同样的错误:

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

它帮助我再次或几次运行安装命令。 之后,错误就消失了。

【讨论】:

【参考方案8】:

就我而言,这是因为 RAM 内存不足,导致照片压缩库无法处理更大的照片。

【讨论】:

我遇到了同样的问题,是因为内存不足。 一样!似乎 ELIFECYCLE errno 137 也可能是由于内存不足引起的。就我而言,我的服务器有 1Gb RAM。将其升级到 2Gb,我的构建通过了。 我在 Docker 下运行 npm run watch 并从问题中得到错误。当我增加 docker 的内存和 CPU 限制时,问题就消失了。 遇到了同样的问题。以下是我摆脱内存短缺的方法:***.com/a/34998803/2472389 是的,内存不足问题也是这里的问题【参考方案9】:

当我运行两个具有相同设置的项目并且我已经运行了一个时,我遇到了这个问题。这意味着其他项目无法使用该端口号。一旦我停止运行另一个项目,我就没有任何问题。

【讨论】:

【参考方案10】:

当我在节点 docker 容器中运行 npm run build 时,我遇到了相同的错误代码。

在本地它在容器内工作时我设置了选项以在编译期间出现警告时抛出错误,而在本地未设置它。所以这个错误可能意味着任何与停止 NPM 正在完成的进程有关的事情

【讨论】:

【参考方案11】:

在我的情况下,这是 Linux 的权限问题,而不是写作:

npm run start

我试过了:

sudo npm run start

然后输入你的 sudo 用户密码,你就可以开始了!

【讨论】:

我认为您不需要将 npm 作为 sudo 执行。相反,更改文件所有权会更好。【参考方案12】:

就我而言,当我从另一个目录复制项目时产生了类似的错误。一些隐藏文件,如关键的 .babelrc,丢失了。所以啊...确保复制所有文件! :)

【讨论】:

【参考方案13】:

当您从 git 拉取代码但尚未安装节点模块“npm install”时,也会出现此问题。

【讨论】:

【参考方案14】:

对我来说这是一个三元语句:

它特别抱怨这行,关于分号:

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

我改成:

let num_coin = val.num_coin || 2;

【讨论】:

你的三进制不正确,而不是 ||你需要一个冒号:let num_coin = val.num_coin ? val.num_coin : 2; 话虽这么说,因为你只是在检查 val.num_coin 的真实性,所以第二个选项更简洁【参考方案15】:

Windows 解决方案与 Linux sudo 答案相同。以管理员身份运行 npm start (或其他)。我在我的项目中添加了一个新模块。在一些机器上工作,但在其他更锁定的机器上工作,不是那么多。花了一些时间才弄明白,但新模块需要访问“某些东西”,而没有管理员权限则无法使用。

【讨论】:

【参考方案16】:

同样,我看到这个错误是因为 RAM 太少。我启动了 VM 上的 RAM,错误消失了。

【讨论】:

您可能需要再次检查您的问题。你的问题的第一部分似乎被切断了。【参考方案17】:

我在这里找到了解决方案 - https://javahowtos.com/guides/124-docker/418-npm-exit-status-137-when-building-a-docker-image.html

它说 - 这个特定的 npm 错误状态的原因通常意味着 Docker 内存不足。因此,当这种情况发生时,Linux 内核会直接终止该进程。

【讨论】:

您好,这里描述的问题与 docker 没有直接关系,但是您的发现可能对使用 docker 时遇到此问题的人有所帮助【参考方案18】:

如果您在 ubuntu 上运行,请检查您的 nodejs 版本。请将版本更新到最新版本并清除缓存并重新安装模块(npm install)并构建。

否则

请升级您的 RAM 大小并重试。它肯定会工作。

【讨论】:

【参考方案19】:

首先,您必须删除 npm 缓存并升级到最新版本的节点,npm 将解决该问题。

sudo npm cache clean -f

sudo npm install -g n install n 

sudo n stable 

第一个命令将强制清理 npm 包管理器的缓存,在第二个和第三个命令之后,将安装一个稳定版本的节点和 npm。然后您可以执行 npm inpm run build 来创建优化的生产构建。

此解决方案适用于 nextjs 中 npm run build 命令的相同错误。

【讨论】:

以上是关于ELIFECYCLE Node.js 错误是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

node.js中的+new Date语法是啥[重复]

用java做后台用nodejs做前台是啥意思

Node.JS 错误 - process.env.NODE_TLS_REJECT_UNAUTHORIZED。这是啥意思?

node-v13.14是啥

Heroku 错误代码:Elifecycle +更多未知数

dtrace 脚本输出是啥意思?