【发布时间】:2019-06-09 19:53:25
【问题描述】:
据我所知,NPM 你可能有一个像
这样的依赖结构 APP
/ | \
A1.0 B1.0 C3.0
| / \ | \
C1.5 D1.27 C1.5 D1.27 A1.0
它不能完全平坦的原因是因为模块 C 可以有许多不同的版本
但是为什么我们不能将文件夹重命名为它们的版本并具有完全扁平的结构,并使用符号链接?
APP
/ / | \ \
A1.0 B1.0 C1.5 C3.0 D1.27
^| |---^^|----^|--^-^
||-------| |----||--|
|----------|
据我了解。 NPM3 / Microsoft RUSH / PNPM 会尝试扁平化事物,但仍然保持子依赖结构
APP
/ / \ \
A1.0 B1.0 C3.0 D1.27
| |
C1.5 C1.5
这里既然已经有了模块 C,它会将另一个版本的 C 扔到 A 的子依赖中。但是现在我们有两个 C1.5 的
我错过了什么吗? 有没有真正的扁平化和符号链接的经理? 扁平结构不起作用有什么原因吗?
谢谢
【问题讨论】:
-
这里既然已经有模块 C,它会将另一个版本的 C 扔到 A 的子依赖中。但是现在我们有两个 C1.5 - 你的案子? NPM 通常不会这样做。即使它是偶然发生的,也有
npm dedupe。层次结构完全平坦是不切实际或不可能的,因为包不一定由其版本明确标识。
标签: node.js npm architecture dependencies dependency-management