npm package-lock.json中缺少“已解决”和“完整性”

wydwbb8l  于 2023-01-26  发布在  其他
关注(0)|答案(1)|浏览(240)

有时候,当安装一个(不相关的)依赖项时,我会丢失每个私有nexus仓库依赖项的resolved值,这意味着当我的构建服务器运行npm ci时,它福尔斯到尝试从npm仓库安装这些依赖项,这显然会失败。
我使用的是npm 8.5.5/node 16.15
我使用NPM的工作区特性来构造monorepo,这意味着我有几个项目package.json文件和一个根package.json
我的.npmrc(在根级别)如下所示:

engine-strict=true
@foo:registry=http://prod-nexus.foo.com/repository/bar/
always-auth=true

在(不相关的,随机的)安装后,我的package-lock.json将有以下更改:

"@foo": {
        "version": "1.2.3",
-       "resolved": "http://prod-nexus.foo.com/repository/bar/@foo/-/lib-1.2.3.tgz,
-       "integrity": "sha...",
+       "license": "MIT",
        "dependencies": { ....

请注意,resolvedintegrity字段已消失,添加了license
我已经遇到过这个问题好几次了,每次我都通过回滚和一些手动编辑来解决它,最终它消失了,但我真的需要了解发生了什么。
是什么导致了这种情况,为什么它是随机的,我能做些什么来防御它?

plicqrtu

plicqrtu1#

这可能与问题https://github.com/npm/cli/issues/4263有关
1.清除npm高速缓存npm cache clean -f
1.再次运行npm install
如果该操作不起作用,请在删除更多内容时重试:
1.清除npm高速缓存npm cache clean -f
1.删除项目文件夹中的node_modules
1.删除package-lock.json文件
1.再次运行npm install

相关问题