算法

中英双语

给定一个 package{dep} 结构:A{B,C}, B{C}, C{D},npm install 算法产生:

A
+-- B
+-- C
+-- D

也就是说,从 B 到 C 的依赖关系通过 A 已经导致 C 安装在更高级别的事实来满足。D 仍然安装在顶层,因为它没有任何冲突。

对于 A{B,C}, B{C,D@1}, C{D@2},此算法产生:

A
+-- B
+-- C
   `-- D@2
+-- D@1

因为 B 的 D@1 会安装在顶层,所以 C 现在必须为自己私下安装 D@2。该算法是确定性的,但如果请求以不同顺序安装两个依赖项,则可能会生成不同的树。

有关 npm 创建的特定文件夹结构的更详细说明,请参阅 文件夹