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.
假设我对 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.