首页 > 解决方案 > pnpm -- 同步依赖版本

问题描述

假设我对 Javascript monorepo 有以下限制

-- module a
   package.json
-- module b
   package.json
package.json

模块 A 和模块 B 都依赖于 lodash。

使用 pnpm,有什么方法可以确保它们都使用相同版本的 lodash?就像可能在根目录中安装 lodash 并说“使用工作区根目录中的任何版本”?

PS 我知道 pnpm 允许或工作区,但据我了解(这可能是错误的),仅当依赖项已经是 monorepo 中的模块时才使用它——而不是用于第 3 方依赖项。

标签: monorepopnpm

解决方案


您可以使用您的overrides字段package.json来实现此目的。

https://pnpm.js.org/en/package_json#pnpmoverrides

{
  "pnpm": {
    "overrides": {
      "lodash": "4.17.20"
    }
  }
}

Yarn 中有一个类似的功能,称为resolutions. 显然有一些差异,虽然我不熟悉细节。该功能已添加到此处。


推荐阅读