CNode

如何升级第三方 NPM 包中的引用的 NPM 包

问答
JJianmingXia发布于4 年前最后回复4 年前4 回复3578 浏览0 收藏

现在遇到一个问题,项目中依赖一个第三方 NPM 包 A,而第三方 NPM 包 A 又依赖 B。 现在遇到一个场景,A 包有一个版本是由于依赖 B 引起,需要升级 B 包。但是 A 包由第三方维护,无法直接升级。而 Node 模块如大家所知,我在项目中,声明一个新版的 B 包,对 A 包来说是无法生效的。 求助这个情况如何升级呢?

查看回复

回复 (4)

C
chenkai0520#1·4 年前

推荐第一种方法

J
JianmingXia#2·4 年前
引用 chenkai0520+ 找到github提issue + 使用pnpm patch或者yarn patch 或者 https://www.npmjs.com/package/patch package + 自己动...

@chenkai0520 感谢回复,已经在按方法 1 在走了。抱着一点希望,想知道有没有其它巧妙的办法

D
DreamLarva#3·4 年前

这个刚遇到过, 使用 npm 的 overrides 属性 比如你想 A包里面的 B是 c.d.e 版本 那就

{
  "overrides": {
    "A": {
      "B": "c.d.e"
    }
  }
}

具体可以看 https://docs.npmjs.com/cli/v8/configuring-npm/package-json#overrides

当然这个是必须用 npm 安装依赖才有的功能

B
brizer#4·4 年前

overrides可惜依赖npm8+啊。

参与回复
登录后即可参与回复。登录