调试npm ERR!代码ELIFECYCLE npm ERR! errno 1

时间:2019-10-16 04:57:17

标签: javascript node.js typescript npm

寻求有关如何调试此编译器错误的建议:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! ******@1.1.0 dev: `NODE_ENV=development ts-node ./src/server.ts`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the ******@1.1.0 dev 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:

在运行ts-node ./src/server.tsnode build/server.js时出现

tsc正常运行。

tsconfig.json

{
   "compilerOptions": {
      "lib": [
         "es2018",
         "dom",
         "esnext.asynciterable"
      ],
      "target": "es2018",
      "module": "commonjs",
      "outDir": "build",
      "emitDecoratorMetadata": true,
      "experimentalDecorators": true,
      "esModuleInterop": true,
      "sourceMap": false,
      "rootDirs": ["src", "../shared"]
//      "rootDir": "src"
   },
   "exclude": [
      "node_modules",
      "**/*.spec.ts",
      "**/*.test.ts"
   ],
   "references": [
      { "path": "../shared" }
   ]
}

我确实在tsconfig中做了一些更改,我想这会导致某些导入失败,但是代码库很大,我真的需要一些指向导致错误的代码行的指针。尤其令人困惑的tsc运行没有错误。

更新:

问题是一些进口货物已经修复,但是又面临着类似的问题。知道当前问题的原因-由于某种原因,从共享项目(如在https://www.typescriptlang.org/docs/handbook/project-references.html中)的导入未加载(尽管它们在其他模块中工作,并且tsconfig.json与其他模块相同)。没有特别的错误,只是npm ERR! code ELIFECYCLE npm ERR! errno 1

问题:

但是,该主题的主要问题不是特别是该问题的解决方案,而是如何调试所有可用日志基本上为npm ERR! code ELIFECYCLE npm ERR! errno 1的此类导入问题。我定期面对此类问题,每次解决都需要花费大量时间,因为我知道的唯一调试方法是注释可能与可能失败的导入相关的代码块,有时此过程可能需要数小时

4 个答案:

答案 0 :(得分:3)

我解决了这个问题,先删除到package-lock.json 写控制台  -npm测试
(如果npm安装没有任何问题,很可能是服务器中的问题)

  • npm install -g服务
  • npm运行构建

问题解决了。 如果您想使用本地语言,则可以输入

  • 服务-s构建 多数民众赞成在-祝你好运:)

答案 1 :(得分:1)

我将首先调试编译的脚本(尽管未精简),因为它删除了输入和结果之间的一些中间步骤。我倾向于调试这些问题的方法有多种:

  • 首先,我建议尝试使用NODE_DEBUG标志,例如: NODE_DEBUG=module node build/server.js,如果您怀疑问题与模块加载有关。
  • 您可以尝试node --inspect-brk build/server.js并启动检查器以逐步进行检查(例如,在Chrome中)。如果您的代码实际上已成功加载,但有时可以帮助自定义加载器,这将非常有用。

答案 2 :(得分:0)

您已经说过,日志不是很详细,所以我不会投入精力来找出如何调试未详细的日志文件,而是会找出如何修改我的项目以使其更详细记录,在每个主要步骤之后,如果它在某个时候失败了,您将看到成功执行的内容,运行经过的状态,并且从崩溃的角度将看不到您计划的记录。

答案 3 :(得分:0)

基于@Porcellus的答案,能够通过NODE_DEBUG=*标志=>解决此问题,该错误显示了缺少模块的完整堆栈跟踪。