NPM 是尝试多次安装相同的依赖包还是只安装一次?
Does NPM try to install same dependent package multiple times or only once?
想了解 npm 如何处理相同版本的重复包的安装。
- 如果已经安装了相同的包 - 相同的版本,它会忽略吗?
- 又是install/overwrite同一个包裹吗?
例如:
- 包 A 依赖于包 B 和包 C。
- 其中包 B 和 C 依赖于通用包 D 版本 1.0
所以当 运行 npm install 时,它会尝试安装包 D 两次还是只安装一次,并且会忽略第二次出现,因为它已经存在于 node_modules?
NPM 安装算法声明 dependencies will be added as close to the top as is possible without breaking any other modules
。
在你的例子中,包 B 和 C 都依赖于 D@1.0。由于两个依赖之间没有可能的冲突,包D将在顶层安装一次。
粗略的表示,这里是你想象中的原始依赖树
+ package A
+-- B
-- D@1.0
+-- C
-- D@1.0
包 A 在同一顶层安装 dep B 和 dep C。由于树中没有其他冲突版本的 dep D,dep D 也被添加到顶层,供 dep B 和 dep C 使用。
+ package A
+-- B
+-- C
+-- D@1.0
想了解 npm 如何处理相同版本的重复包的安装。
- 如果已经安装了相同的包 - 相同的版本,它会忽略吗?
- 又是install/overwrite同一个包裹吗?
例如:
- 包 A 依赖于包 B 和包 C。
- 其中包 B 和 C 依赖于通用包 D 版本 1.0
所以当 运行 npm install 时,它会尝试安装包 D 两次还是只安装一次,并且会忽略第二次出现,因为它已经存在于 node_modules?
NPM 安装算法声明 dependencies will be added as close to the top as is possible without breaking any other modules
。
在你的例子中,包 B 和 C 都依赖于 D@1.0。由于两个依赖之间没有可能的冲突,包D将在顶层安装一次。
粗略的表示,这里是你想象中的原始依赖树
+ package A
+-- B
-- D@1.0
+-- C
-- D@1.0
包 A 在同一顶层安装 dep B 和 dep C。由于树中没有其他冲突版本的 dep D,dep D 也被添加到顶层,供 dep B 和 dep C 使用。
+ package A
+-- B
+-- C
+-- D@1.0