我一直在我的 CI 环境中构建版本,方法是从源代码管理中签出,在干净的目录上运行 npm install,然后是 npm dedupe && npm shrinkwrap
.这一直很完美。
现在收缩包装抛出一个错误:
npm ERR! Problems were encountered
npm ERR! Please correct and try again.
npm ERR! missing: async@^1.4.0, required by handlebars@4.0.6
这不是我的依赖项之一,因此必须是子依赖项。我尝试将此依赖项签入源代码管理,但它仍然抛出相同的错误。
有解决方法吗?我想在将所有内容迁移到纱线之前至少尝试一些东西......
对我来说
,更新到 NPM v5 解决了收缩包装时的问题。
如果将 package-lock.json 添加到源代码管理中,更新到 NPM v5 也会为您提供可重现的构建,这将阻止您的构建在将来子依赖项更改时失败。