首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npm3不会完全平缓依赖结构。

npm3不会完全平缓依赖结构。
EN

Stack Overflow用户
提问于 2016-02-06 21:28:38
回答 1查看 423关注 0票数 1

npm3是为了使用使node_modules文件夹扁平化的依赖关系而引入的。显然,这并不总是真的。我有我的应用程序,让我们把它命名为A和我正在开发的一个模块B。该模块具有gulp作为依赖项和一些gulp插件,如gulp-rename。我本来希望gulpgulp-rename在应用程序Anode-modules文件夹中(就像它把B作为依赖项一样)。但事实并非如此。gulp-rename实际上在A/node_modules中,但是gulp本身在A/node_modules/B/node_modules文件夹中。

有什么线索吗为什么会这样?

更新

我已经把这个问题缩小到了这个特殊的案例:

有一个应用程序A和一个我正在开发的模块,B。该模块具有gulp作为依赖项,package.json bin属性定义如下(B的package.json):

javascript "bin" { "gulp": "<some_valid_path>" }

我本来希望在我的应用程序gulpnode-modules文件夹中有A (因为它将B作为依赖项,并且由于npm3依赖扁平化)。但是很明显,npm把它放在了A/node_modules/B/node_modules文件夹中。这是一种有意的行为吗?为什么?

EN

回答 1

Stack Overflow用户

发布于 2016-02-07 09:58:21

好吧,npm尽可能地使依赖树变得平坦;然而,这并不意味着它总是完全平坦的。例如,如果依赖项D1依赖于A ^1.0.0,而D2依赖于A ^2.0.0,那么npm显然不能同时将这两个依赖项放到根node_modules中。A的一个版本(比如1.0.0)可能转到根目录,另一个版本必须转到node_modules/D2/node_modules,以便D2在它开始在父dir中查找它之前,就能在正确的版本中找到它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35246679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档