webpack - webpack 如何处理 monorepo 中相同依赖项的不同版本?
问题描述
我创建了四个伪造的 monorepos,每个包含两个包:
Lerna v3 • Node.js 12.20 • Yarn 1.19.1
- 包
foo1
导入foo2
- 两者都
foo1
使用foo2
同一个库(Ramda) - 两者都
foo1
与foo2
webpack 捆绑在一起
Ramdafoo1
和foo2
Ramda 都是 ES 模块。
这些 monorepos 之间的主要区别在于 Ramda 的版本以及是否提升了依赖项。
在引导每个 monorepo 之后,我查看了包的捆绑foo1
包大小:
foo1 拉姆达 |
foo2 拉姆达 |
依赖提升? | foo1 捆绑大小 |
---|---|---|---|
0.26.0 | 0.26.0 | 是的 | 92K |
0.26.0 | 0.26.0 | 不 | 92K |
0.26.0 | 0.25.0 | 是的 | 91K |
0.26.0 | 0.25.0 | 不 | 91K |
我原以为最后两个捆绑包的大小会大得多,但事实并非如此。为什么?
解决方案
推荐阅读
- java - 猜数字游戏。field2 不显示任何内容。谁能告诉我这里有什么问题?
- r - 向量上的 paste() 给出了不需要的空格,如何删除它?
- azure-devops - VSTS。复制文件任务未创建文件夹
- mysql - MySQL 创建数据库表查询
- javascript - 如何发送和接收通过 getUsermedia() 生成的桌面捕获流
- spring-cloud-dataflow - Spring Cloud 数据流 2.0.0 RELEASE
- xml - 训练后如何找到“Humanoid-v2”代理行进的距离?
- azure-active-directory - 使用客户端 ID 获取 SharePoint Office 365 数据
- javascript - D3 图表不会显示动态创建的 JSON
- parsing - 语言如何测试它们的解析逻辑?