生命周期是什么意思?

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

当我运行'blast-电子邮件'命令时,它会运行一段时间,直到很快崩溃并出现错误:

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中。

我正在寻找两个答案中的一个:生命周期是什么意思?(或)为什么我在我的应用程序代码中得到错误?


它基本上是说,它不能生成你的进程不是由于权限,而是由于你的脚本中的一个错误。源

执行NODE_ENV=生产节点app.js没有任何问题吗?


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

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

当一个不同的工具已经在使用我的节点脚本中定义的http端口(3000)时,出现了这个错误。当你在端口80上运行你的节点应用程序时,确保你已经停止了Apache web服务器(作为一个例子)。


当在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! Failed at the foundationsix@1.0.0 postinstall script 'bower install && gulp build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the foundationsix package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     bower install && gulp build

在再次尝试npm install后,我又尝试了bower install。当这是成功的,我尝试了gulp构建,这也工作。

现在一切都很好。不知道为什么在&&失败的情况下分别运行每个命令,但也许其他人会发现这个答案很有用。


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运行样例时,我的错误来自终端 在纠正我的数据库连接用户名和密码后 我正在使用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 records inserted.
closing connection...
done.
12 records inserted.
closing connection...
done.

因此,如果我们在代码中创建了数据连接,最好查看一下。


当运行Webpack构建时,我得到了类似的错误,因为节点不理解旧版本上的异步等待关键字。我添加了webpack babel-plugin-transform-async-to-generator,然后问题就解决了。这就用承诺代替了他们。


如果你像我一样来到这里,在尝试React入门指南时收到类似的错误,你可能想知道这个问题可能是由于没有安装Watchman造成的。在这里下载它,或者用Homebrew和brew install watchman安装它,然后重试:https://facebook.github.io/watchman/docs/install.html

PS:你可能想先做一个酿造更新。


在我安装新包或更新它们后,我有同样的错误:

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

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


以我为例,这是因为RAM内存较低,照片压缩库无法处理较大的照片。


我在运行两个具有相同设置的项目时遇到了这个问题,而我已经运行了一个。这意味着其他项目不能使用该端口号。当我停止运行其他项目时,我没有遇到任何问题。


当我在节点docker容器内运行npm run build时,我有相同的错误代码。

在本地,它正在工作,而在容器内,我设置了选项,在编译期间有警告时抛出错误,而在本地它没有设置。所以这个错误可以指任何与停止NPM正在执行的进程有关的错误


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


当你从git中提取代码并且尚未安装节点模块“npm install”时,也会发生此问题。


对我来说,这是一个三元命题:

它在抱怨这一行,尤其是分号:

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

我把它改成:

let num_coin = val.num_coin || 2;

Windows的解决方案与Linux的sudo答案相同。以管理员身份运行npm start(或其他)。我在我的项目中添加了一个新模块。在一些机器上工作,但在另一些更严格的机器上,就没有那么多了。花了一段时间才弄清楚,但新模块需要访问“某些东西”,而这些东西在没有管理员权限的情况下是不可用的。


同样,我认为这个错误是RAM太小的结果。我加大了虚拟机的RAM,错误消失了。


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

这个特定的npm错误状态的原因通常意味着Docker内存即将耗尽。因此,当发生这种情况时,Linux内核会终止该进程。


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

或以其他方式

请升级内存大小,然后重试。肯定会有用的。


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

sudo npm cache clean -f

sudo npm install -g n install n 

sudo n stable 

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

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