【问题标题】:debugging npm ERR! code ELIFECYCLE npm ERR! errno 1调试 npm ERR!代码 ELIFECYCLE npm 错误!错误号 1
【发布时间】:2020-02-12 19:17:13
【问题描述】:

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

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的导入问题。我会定期遇到此类问题,每次都需要花费大量时间来解决,因为我知道的唯一调试方法是注释可能与可能失败的导入相关的代码块,有时这个过程可能需要几个小时.

【问题讨论】:

  • 是的,我试着听从那里的建议,没有帮助。
  • 如果你在 Windows 上尝试,它不会工作。使用包cross-env 来做到这一点
  • 大多数情况下,此输出之前的控制台输出定义了错误。但是在 npm 出错时生成的日志文件中也没有任何内容。该位置也显示在“npm ERR!此运行的完整日志可以在:”之后找到:
  • 没有用于首次编译的工具。他们在他们的路线图中有这个,但它还没有被盯着。

标签: javascript node.js typescript npm


【解决方案1】:

我将从调试已编译的脚本开始(虽然没有缩小),因为它删除了您的输入和结果之间的一些中间步骤。我倾向于使用多种方法来调试这些问题:

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

【讨论】:

    【解决方案2】:

    正如你所说,日志不是很详细,所以我不会花精力去找出如何调试不详细的日志文件,而是会找出如何修改我的项目以便它做一些更详细的记录,在每个主要步骤之后,因此如果它在某个时候失败,您将看到成功执行的内容,运行的状态,并且您将看不到从崩溃点开始计划的日志记录。

    【讨论】:

      【解决方案3】:

      基于@Porcellus 的回答,能够使用NODE_DEBUG=* 标志解决此问题 => 显示了缺失模块的完整堆栈跟踪。

      【讨论】:

        【解决方案4】:

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

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

        问题解决了。。 如果你想使用你的本地,你可以输入

        • 服务 -s 构建 就是这样-祝你好运:)

        【讨论】:

        • 可能这对您的问题有所帮助,但我的问题更广泛 - 如何调试这类事情。解决方案是使用NODE_DEBUG=* 标志。
        猜你喜欢
        • 1970-01-01
        • 2020-10-23
        • 2019-04-14
        • 2021-01-18
        • 1970-01-01
        • 2020-09-18
        • 2020-12-27
        相关资源
        最近更新 更多