构建管道中的 NPM“解析附近时 JSON 输入意外结束”

Posted

技术标签:

【中文标题】构建管道中的 NPM“解析附近时 JSON 输入意外结束”【英文标题】:NPM "Unexpected end of JSON input while parsing near" in build pipeline 【发布时间】:2019-09-15 17:31:01 【问题描述】:

上下文

NPM 版本:8.9.4 npm 版本:6.9.0

我们正在使用带有 windows vs2017 托管代理的 azure devops 构建管道

问题

每 10 个构建中有 1 个失败并出现以下错误:

错误

verbose stack SyntaxError: Unexpected end of JSON   input while parsing near '...st":"integrity":"sha' 

18263 verbose stack     at JSON.parse (<anonymous>)  

18263 verbose stack     at parseJson (C:\npm\prefix\node_modules\npm\node_modules\json-parse-better-errors\index.js:7:17)  

18263 verbose stack     at consumeBody.call.then.buffer (C:\npm\prefix\node_modules\npm\node_modules\node-fetch-npm\src\body.js:96:50)
18263 verbose stack     at <anonymous>  

18263 verbose stack     at process._tickCallback (internal/process/next_tick.js:188:7)  

它无法解析的 JSON 不同。

我已经尝试过的事情

使用 npm ci 代替 op npm install

有一个构建任务,在安装 npm 之前删除 npm chache。 (npm 缓存清理 --force)

有一个构建任务会更改使用的注册表。 (配置集注册表“https://registry.npmjs.com/”)

【问题讨论】:

我们得到同样的东西,但不像你那么正常。当它运行时,可能需要进行大量重建才能使其再次工作! :(你解决过这个问题吗? 你解决过这个问题吗?过去几周我们经常遇到这种情况 这里也一样 - 每隔几次构建就定期获得这个。一些解决方案建议运行“npm cache clean --force”,但这并不能解决/帮助 【参考方案1】:

如果 10 个构建中有 9 个成功,则问题可能不在您的 npm 缓存中,而可能是您的构建工作区。您是否尝试在工作步骤开始时将其添加到构建管道?

jobs:
- job:
  workspace:
    clean: all
  # ... other job settings
  steps:
  # ... build steps

【讨论】:

这并不重要,因为在托管代理上,工作区每次都会自动清洁。

以上是关于构建管道中的 NPM“解析附近时 JSON 输入意外结束”的主要内容,如果未能解决你的问题,请参考以下文章

在 azure-devops 中的发布管道期间创建标签

如何在 Jenkins 管道中使用 SSH?

npm install 在 docker 的 jenkins 管道中失败

对于 ADO 管道上的 dotnet 发布,使用私有源的 NPM 身份验证失败

如何使用代码 0 退出“npm run start”?

npm scripts构建