“npm ERR!code ELIFECYCLE”在标准输出或调试文件中没有更多信息

Posted

技术标签:

【中文标题】“npm ERR!code ELIFECYCLE”在标准输出或调试文件中没有更多信息【英文标题】:"npm ERR! code ELIFECYCLE" without no more information in the stdout or the debug file 【发布时间】:2021-12-08 14:47:55 【问题描述】:

我在 CI 服务器上构建失败并显示此消息:

+ npm run coverage

> trololol-cloud-monitor-service@4.3.10 coverage /home/jenkins/workspace/workspace/ololCloud_service-monitor_PR-3568
> nyc --reporter=lcov --include='**/*.js' npm run test:ci

> trololol-cloud-monitor-service@4.3.10 test:ci /home/jenkins/workspace/workspace/erayCloud_service-monitor_PR-3568
> TLL_MONITOR_UPLOAD_WAIT_TIME=0 TLL_DEFAULT_WAIT_TIMEOUT=0 ./node_modules/.bin/mocha --timeout 120000 --reporter=xunit --reporter-options output=./test-results/TEST-results.xml --require @babel/register  --exit ./test/monitor-unit-test-suite.js

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! trololol-cloud-monitor-service@4.3.10 test:ci: `TLL_MONITOR_UPLOAD_WAIT_TIME=0 TLL_DEFAULT_WAIT_TIMEOUT=0 ./node_modules/.bin/mocha --timeout 120000 --reporter=xunit --reporter-options output=./test-results/TEST-results.xml --require @babel/register  --exit ./test/monitor-unit-test-suite.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the trololol-cloud-monitor-service@4.3.10 test:ci script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/jenkins/.npm/_logs/2021-10-21T19_09_07_920Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! trololol-cloud-monitor-service@4.3.10 coverage: `nyc --reporter=lcov --include='**/*.js' npm run test:ci`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the trololol-cloud-monitor-service@4.3.10 coverage script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/jenkins/.npm/_logs/2021-10-21T19_09_08_438Z-debug.log
script returned exit code 1

这些日志中没有任何信息,提到的文件2021-10-21T19_09_08_438Z-debug.log也没有任何其他内容。

我怎样才能找到我需要的信息?

【问题讨论】:

【参考方案1】:

TL;DR:查找可能已保存命令输出的文件。

由 NPM 调用的应用程序来打印所需的信息。换句话说:您可能应该更改您的构建代码(可能是您的package.json)以显示您需要的日志。通常,这并不实用,甚至不可行,但这是一种通用方法。

OTOH,有时信息被发送到不同的地方。例如,考虑下面的行,取自问题的输出,为了更易读而分成几行:

npm ERR! trololol-cloud-monitor-service@4.3.10 test:ci: 
  `TLL_MONITOR_UPLOAD_WAIT_TIME=0\TLL_DEFAULT_WAIT_TIMEOUT=0 ./node_modules/.bin/mocha 
    --timeout 120000
    --reporter=xunit
    --reporter-options output=./test-results/TEST-results.xml
    --require @babel/register
    --exit ./test/monitor-unit-test-suite.js`

请注意,./node_modules/.bin/mocha 具有标志 --reporter-options output=./test-results/TEST-results.xml。不难想象测试结果会写入文件./test-results/TEST-results.xml。我们的错误消息更有可能出现在那里。

确实,我看了一下,发现了以下几行:

<testcase
  classname="Utils tests Config Watcher Tests Reload Config"
  name="Should reload configs, after file events" time="1.002">
    <failure>the string &#x22;Reload wait timeout 1000ms exceeded&#x22; was thrown, throw an Error :)
Error: the string &#x22;Reload wait timeout 1000ms exceeded&#x22; was thrown, throw an Error :)</failure>
</testcase>
<testcase
  classname="Utils tests Config Watcher Tests Schedule Reload"
  name="Should reload config, after scheduled reload" time="1.001">
    <failure>the string &#x22;Reload wait timeout 1000ms exceeded&#x22; was thrown, throw an Error :)
Error: the string &#x22;Reload wait timeout 1000ms exceeded&#x22; was thrown, throw an Error :)</failure>
</testcase>

这就是构建失败的根本原因。

经验法则是:查找可能已保存命令输出的文件。带有outputlogfileredirect 等字样的标志是潜在的输出重定向器.

这不是一个确定的解决方案。您可能无法访问 CI 等上的这些文件。但是,在绝望之前,我会尝试这个经验法则。

【讨论】:

以上是关于“npm ERR!code ELIFECYCLE”在标准输出或调试文件中没有更多信息的主要内容,如果未能解决你的问题,请参考以下文章

vue项目webpack打包失败,npm ERR! code ELIFECYCLE

输入npm install 报错npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sass@4.13.1 postinstall: `no

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! test_vue_0613@1.0.0 dev: 错误的解决方法

“npm ERR!code ELIFECYCLE”在标准输出或调试文件中没有更多信息

Heroku 最近开始在 Webpack 构建期间给出部署错误“npm ERR!code ELIFECYCLE”