节点错误 npm ERR! cb() 从未调用过

Posted

技术标签:

【中文标题】节点错误 npm ERR! cb() 从未调用过【英文标题】:Node error npm ERR! cb() never called 【发布时间】:2018-09-19 13:18:27 【问题描述】:

当我运行命令npm install npm@latest -g 我收到以下错误:-

npm WARN tar zlib error: unexpected end of file
npm ERR! cb() never called!

npm ERR! This is an error with npm itself. Please report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\dk\AppData\Roaming\npm-cache\_logs\2018-04-10T03_25_52_880Z-debug.log

我用谷歌搜索并尝试了很多东西,但没有任何效果。

【问题讨论】:

试试npm i -g npm 这里讨论了问题和解决方法github.com/npm/npm/issues/19353 我已经解决了同样的问题。看到这个链接***.com/questions/52467848/… 就我而言,npm cache verify 确实有效。 Reference 【参考方案1】:

对于遇到此问题的任何人,如果您在npm install 上遇到相同的错误消息,那么npm install --no-package-lock 为我解决了这个问题。

正如上面 Mohit Mutha 评论中引用的 Github issue 中所建议的,如果命令在 CI/CD 管道中运行,或者在我的情况下,在 Docker 中运行,则尤其如此。

编辑:原因是package-lock.json 文件已存在于您的 Docker 映像或 CI 管道中

Full details

【讨论】:

确认在 ng v6 项目的 gitlab 管道上积极使用该标志。 就我而言(jenkins CI),工作区已损坏。清理工作区很有帮助。 人们在拨打--no-package-lock 时应该知道他们禁用了什么,你不觉得吗? 这个问题的一个原因是你的项目目录中有 package-lock.json 文件。因此,您可能必须从目录中删除 package-lock.json 文件,然后运行 ​​npm install 命令。希望它对你有用。 伙计,我可以为这个答案投百万票。你为我节省了很多时间。谢谢!!!【参考方案2】:

我们的团队在 CI 管道中遇到了这个错误。然而,使用--no-package-lock 的最佳答案实际上会导致 npm 也使用现有的 package-lock.json,这绝对不是 CI 所需的行为。相反,现在推荐使用npm ci 在 CI 中安装,因为它将使用现有的包锁(仅此而已)。

【讨论】:

【参考方案3】:

运行解决

sudo npm cache clean --force

然后删除 package-lock.json 和 node_modules

然后执行

npm install 

【讨论】:

运行以下命令解决了我的问题 --- npm install --no-package-lock

以上是关于节点错误 npm ERR! cb() 从未调用过的主要内容,如果未能解决你的问题,请参考以下文章

npm 错误! cb() 从未在 windows10 中调用过

npm 错误! cb() 从未调用过!尝试运行 npm install 命令时出错

npm ERR! cb() never called! npm ERR! <https://npm.community>

如何修复节点服务器错误,npm ERR!代码 ELIFECYCLE npm 错误!错误1?

Angular 6:npm 错误!安装 Angular cdk 时从不调用 cb()

npm 错误! cb.apply 不是函数