NPM 如何处理与 Sub/Transitive 依赖项的冲突
How does NPM handle Conflicts with Sub/Transitive Dependencies
我 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,令我惊讶的是,做正确的事并继续嵌套子依赖项。即,回答问题
where does version 6.0 of @zip/zap go?
是
./node_modules/@second/package/node_modules/@foo/bar/node_modules/@zip/zap
我 just discovered(对我自己而言)NPM 不像我过去使用的其他包管理系统那样工作。我对事物的基本理解是,我的每个依赖项也将有自己的 node_modules
文件夹和它自己的依赖项(并且,对于较新版本的 npm,第二个 node_modules
文件夹只会在以下情况下创建存在版本冲突)
这看起来很简洁,但我想知道 npm 如何处理 -- sub-sub? --依赖冲突。我很抱歉没有更好地掌握语言——但这就是我的意思。
我想将 @foo/bar
的 3.0 版安装到我的项目中。
第二个软件包——我们称之为 @second/package
——我想安装 @foo/bar
.
我现在明白了 NPM 如何做到这一点。 @second/package
将拥有自己的 node_modules
文件夹,其中包含 @foo/bar
./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,令我惊讶的是,做正确的事并继续嵌套子依赖项。即,回答问题
where does version 6.0 of @zip/zap go?
是
./node_modules/@second/package/node_modules/@foo/bar/node_modules/@zip/zap