NPM如何处理版本冲突?

时间:2017-02-09 21:30:13

标签: node.js npm npm-install node-modules

由于NPM版本3节点模块和依赖项都安装在同一根级别。但是,如果我安装两个依赖于同一模块的两个不同版本的模块呢?例如,如果我安装了异步npm i async@2.1.4requires lodash version 4.14.0,那么我安装自己npm i yo@1.8.5requires lodash version version 3.2.0,npm如何解决这个冲突?

2 个答案:

答案 0 :(得分:11)

答案 1 :(得分:4)

所有依赖项和内部依赖项都试图在node_modules的根目录中占有一席之地,除非与相同的依赖项但版本不同时发生冲突。 发生冲突时,它将在所需的每个依赖项下创建一个子node_modules ,并将冲突的内部库推送到其中。

示例: 在此,“ A”内部取决于“ alpha@v1.0”,“ B”取决于“ alpha@v2.0”。 当您执行安装A和B时,如下所示:

npm install A
npm install B

node_modules
|_ A
|_ alpha @v1.0
|_ B
|    |_ node_modules
|        |_ alpha @v2.0
|_ ...

注意:在主node_module中的“ B”下创建的另一个node_modules

有关更多详细信息:visit this post