pnpm -- 依赖的同步版本

pnpm -- sync versions of dependencies

假设我对 Javascript monorepo

有以下限制
-- module a
   package.json
-- module b
   package.json
package.json

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

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

P.S。我知道 pnpm 允许或工作空间,但据我了解(这可能是错误的),只有当依赖项已经是 monorepo 中的模块时才使用它——不适用于第 3 方依赖项。

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

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

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

Yarn 中存在类似的功能,称为 resolutions。显然有一些差异,虽然我不熟悉细节。 The feature was added here.