有时候,当安装一个(不相关的)依赖项时,我会丢失每个私有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": { ....
请注意,resolved
和integrity
字段已消失,添加了license
。
我已经遇到过这个问题好几次了,每次我都通过回滚和一些手动编辑来解决它,最终它消失了,但我真的需要了解发生了什么。
是什么导致了这种情况,为什么它是随机的,我能做些什么来防御它?
1条答案
按热度按时间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