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
导入哪个模块。