NPM为什么不在node_modules的根级别安装所有软件包?

时间:2018-09-04 22:59:54

标签: npm node-modules

NPM具有这个非常好的功能,称为“ dedupe”。在NPM v3中,这成为默认功能。此功能将使您的依赖关系尽可能地向上移动到依赖关系图,以使依赖关系图更加“平坦”。这样做非常好,因为它允许多次依赖的依赖项仅安装一次,比完全嵌套的结构占用更少的空间。尽管仍然像下面的示例那样,我仍然看到依赖项的重复。

-module-a@1.0.0 -module-b@1.0.0 --module-a@2.0.0 -module-c@1.0.0 --module-a@2.0.0

在这种情况下,module-a@2.0.0将被安装两次,因为module-a@1.0.0已经在根目录下,如果在根目录下安装,则会发生命名冲突。

我希望将所有依赖项安装在node_modules目录的根目录下,但模块名称为<package name + version>而不是<package name>。这样就不会出现重复的依赖关系。如果从源代码导入/需要一个模块,则该范围的package.json将指示要从node_modules导入哪个模块。

0 个答案:

没有答案