NPM如何处理具有子/传递依赖关系的冲突

问题描述 投票:0回答:1

我(对我自己)just discovered认为NPM不能像我过去使用的其他软件包管理系统那样工作。我对事物的基本理解是,我的每个依赖项也将具有自己的依赖项(拥有自己的node_modules文件夹(并且使用npm的最新版本,仅当存在版本冲突时才创建第二个node_modules文件夹) )

这看起来很整洁,但是我想知道npm如何处理-sub-sub? -依赖冲突。对于无法更好地掌握该语言,我深表歉意,但这就是我的意思。

我想将@foo/bar的3.0版安装到我的项目中。

第二个包-称它为@second/package-我要安装@foo/bar的2.0版。

我现在了解使用NPM如何做到这一点。 @second/package将拥有其自己的node_modules文件夹,其版本为@foo/bar的2.0版>

./node_modules/@foo/bar                              # version 3.0
./node_modules/@second/package/node_modules/@foo/bar # version 2.0

但是-

我也想安装@zip/zap的8.0版。

但是@second/package要安装@zip/zap的7.0版。

@foo/bar的2.0版要安装@zip/zap的6.0版。

./node_modules/@foo/bar                              # version 3.0
./node_modules/@zip/zap                              # version 8.0
./node_modules/@second/package/node_modules/@foo/bar # version 2.0
./node_modules/@second/package/node_modules/@zip/zip # version 7.0    

# where does version 6.0 of @zip/zap go?

@zip/zap的6.0版本在哪里结束? npm是否创建third

级别node_module文件夹,还是放弃并说无法解决此依赖关系树?还是第三件事?还是我对npm的理解仍然存在缺陷?

在我弄清楚如何使用伪造的软件包设置我自己的npm存储库以进行测试之前,我认为最好问一下。

我刚刚(为我自己)发现NPM不能像我过去使用的其他软件包管理系统那样工作。我对事物的基本理解是,我的每个依赖项也都具有...

node.js npm dependency-management
1个回答
0
投票

NPM,令我惊讶的是,只是做正确的事

© www.soinside.com 2019 - 2024. All rights reserved.