如何制作 npm 安装包并忽略一个(或全部)对等依赖项?

问题描述 投票:0回答:4

我安装了

[email protected]
。我想安装
vuex-module-decorators@latest
,它的 PeerDependency 为
vuex 3
(不是
>=3
)。我有一种感觉,这与
vuex 4
配合得很好。有没有办法让我告诉 npm 安装这个新包,而不会因为无法解决对等依赖关系而崩溃(因为 4 != 3)?或者我是否需要创建自己的
vuex-module-decorators
分支,并更新
package.json
来允许
vuex >=3

npm npm-install
4个回答
22
投票

快速但可能不安全:使用

--legacy-peer-deps
通常允许您在不满足对等依赖关系要求的情况下安装软件包。 (这是默认使用
npm@6
,因此如果您遇到问题,我假设您正在使用
npm@7
。)如果这不起作用,
--force
将安装,而不考虑对等依赖关系。

需要稍微多一点努力,但更安全/手术:使用npm覆盖。这些是在 npm 8.x 中引入的。


3
投票

您应该将

overrides
与现代版本的 npm 一起使用,因为
--legacy-peer-deps
不太安全,并且可能会屏蔽您可能想要修复的其他遗留对等依赖项:

"overrides": {
  "vuex-module-decorators": {
    "vuex": "$vuex",
  }
}

2
投票

只需尝试这个命令

npm install --legacy-peer-deps

1
投票

如果您希望自动安装对等依赖项,请将“auto-install-peers=true”添加到项目根目录下的 .npmrc 文件中

© www.soinside.com 2019 - 2024. All rights reserved.