生命周期是什么意思?

这是我的应用程序代码: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中。

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


当前回答

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

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

其他回答

当在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构建,这也工作。

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

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

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

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

首先,你必须删除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命令的相同错误。

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

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

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

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