你如何在 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 不允许我们覆盖 axiosanalytics-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