你如何在 package-lock.json 中增加传递依赖
Posted
技术标签:
【中文标题】你如何在 package-lock.json 中增加传递依赖【英文标题】:How do you bump a transitive dependency in package-lock.json 【发布时间】:2020-03-24 14:00:04 【问题描述】:我的项目依赖于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
版本,因为版本应该兼容。
【问题讨论】:
【参考方案1】:npm-force-resolutions 正是出于这个原因,专门修复了传递依赖版本解析。
如果有支持的方法来使用 package-lock.json 做到这一点,那就更好了。
【讨论】:
【参考方案2】:NPM 8 引入了“覆盖”,它允许您覆盖直接依赖项的特定传递依赖项。对于您的用例,您可以在 package.json 中声明如下内容。
"overrides":
"analytics-node":
"axios": "0.18.1"
更多详情@https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides
【讨论】:
以上是关于你如何在 package-lock.json 中增加传递依赖的主要内容,如果未能解决你的问题,请参考以下文章
npm notice 创建了一个锁文件作为 package-lock.json。你应该提交这个文件
如何更新 laravel 中的 package-lock.json 文件?