【问题标题】:Fix issue with npm peerDependencies for particular package修复特定包的 npm peerDependencies 问题
【发布时间】:2021-03-06 05:20:27
【问题描述】:

我的应用程序使用一组具有核心作为对等依赖项的域包。所有域包如下所示:

"name": "domain-a-pckg",
"peerDependencies":{ "core-pckg": "^4.1.0" }
"name": "domain-z-pckg",
"peerDependencies":{ "core-pckg": "^8.9.0" }

主要问题是,一些域包与4.1.0 一起工作正常,但不能与 core-pckg 的8.9.0 一起工作,其余的与8.9.0 一起工作正常,但不能与4.1.0 一起工作。 有没有办法以某种方式配置、禁用对等依赖项或替换模块?换句话说,有没有办法在安装、部署、构建等过程中以某种方式解决该问题? 我本可以重新发布这些软件包,但是由于某些原因,该解决方案是不可接受的。

一个包json:

"dependencies": {
   "domain-a-pckg": "^1.1.1",
   "domain-z-pckg": "^2.1.1",
   "core-pckg": "^4.1.1"
}

【问题讨论】:

  • 为什么会有问题?您可以安装相同依赖项的多个版本吗?假设您无法运行重复数据删除并将它们指向包锁定文件中的相同依赖项 - 我只需安装 domain-a-pckgdomain-z-pckg 并让 NPM 处理它? (作为一个有趣的事实,NPM 7 peerDependencies 是自动安装的)
  • 因为只安装了一个版本的core-pckg,它将被所有域包使用。其中一些会起作用,而另一些会失败。
  • 你使用的是什么版本的 NPM?在 NPM 中,如果您有多个具有相同依赖项的依赖项,它只会安装嵌套依赖项的多个版本,它应该“正常工作”。
  • 6.14.我在 node_modules 中只看到一个 core-pckg。

标签: javascript node.js npm node-modules package.json


【解决方案1】:

对于yarn

"resolutions": {
   "domain-z-pckg/core-pckg": "8.9.0"
}

Npm 目前没有这个功能。 npx force-resolutions 将替换所有嵌套的依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 2019-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多