你如何在 package-lock.json 中添加传递依赖
How do you bump a transitive dependency in package-lock.json
我的项目依赖于 analytics-node
,它依赖于 axios: "^0.16.2"
。
我们已被 npm audit
标记为 axios
存在漏洞,但已在 0.18.1
中修复。
但是,analytics-node
没有依赖于 0.18.1
或更高版本的候选版本(只有测试版)。
我们已经尝试过:
npm audit fix
,
npm update axios --depth 2
,
npm install axios@0.18.1
我最困惑的部分是为什么 npm 不允许我们覆盖 axios
的 analytics-node
版本,因为版本应该是兼容的。
npm-force-resolutions 正是出于这个原因,专门修复了传递依赖版本解析。
不过,如果有一种支持的方法可以使用 package-lock.json 执行此操作,那就更好了。
NPM 8 引入了“覆盖”,它允许您覆盖直接依赖项的特定传递依赖项。对于您的用例,您可以在 package.json.
中声明如下内容
{
"overrides": {
"analytics-node": {
"axios": "0.18.1"
}
}
}
更多详情@https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
我的项目依赖于 analytics-node
,它依赖于 axios: "^0.16.2"
。
我们已被 npm audit
标记为 axios
存在漏洞,但已在 0.18.1
中修复。
但是,analytics-node
没有依赖于 0.18.1
或更高版本的候选版本(只有测试版)。
我们已经尝试过:
npm audit fix
,npm update axios --depth 2
,npm install axios@0.18.1
我最困惑的部分是为什么 npm 不允许我们覆盖 axios
的 analytics-node
版本,因为版本应该是兼容的。
npm-force-resolutions 正是出于这个原因,专门修复了传递依赖版本解析。
不过,如果有一种支持的方法可以使用 package-lock.json 执行此操作,那就更好了。
NPM 8 引入了“覆盖”,它允许您覆盖直接依赖项的特定传递依赖项。对于您的用例,您可以在 package.json.
中声明如下内容{
"overrides": {
"analytics-node": {
"axios": "0.18.1"
}
}
}
更多详情@https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides