monorepo - pnpm -- 同步依赖版本
问题描述
假设我对 Javascript monorepo 有以下限制
-- module a
package.json
-- module b
package.json
package.json
模块 A 和模块 B 都依赖于 lodash。
使用 pnpm,有什么方法可以确保它们都使用相同版本的 lodash?就像可能在根目录中安装 lodash 并说“使用工作区根目录中的任何版本”?
PS 我知道 pnpm 允许或工作区,但据我了解(这可能是错误的),仅当依赖项已经是 monorepo 中的模块时才使用它——而不是用于第 3 方依赖项。
解决方案
您可以使用您的overrides
字段package.json
来实现此目的。
https://pnpm.js.org/en/package_json#pnpmoverrides
{
"pnpm": {
"overrides": {
"lodash": "4.17.20"
}
}
}
Yarn 中有一个类似的功能,称为resolutions
. 显然有一些差异,虽然我不熟悉细节。该功能已添加到此处。
推荐阅读
- go - 如何从Golang中的相邻文件导入代码
- python - .strip() 函数删除文件的第一个值
- android - Firebase Firestore - 如何监听集合中所有文档的元数据更改
- css - CSS Flexbox - 选择换行符开头的每个项目(换行)
- javascript - 调用一个函数来获取不同组件的状态
- amazon-web-services - Amazon EKS:在 Spot 实例上设置工作线程节点
- javascript - 在Firefox中为父元素设置显示无时输入字段模糊事件未触发
- c - 不确定如何确定子进程是通过完成还是信号终止
- python - 如何忽略 pyspark 的 spark-submit 警告
- ruby - 如何将更改的值从 text_field_tag 传递到控制器