阻止node_modules中的作用域node_modules

时间:2018-04-25 00:06:58

标签: node.js npm

当我使用npm install时,会安装某些包含嵌套节点模块的节点包。

像这样:

-node_modules
    -packageA
        +js
        -node_modules     <--- needs to be removed/ignored
             +jquery
    -packageA-sub1
        +js
        -node_modules     <--- needs to be removed/ignored
             +jquery

有没有办法指定哪些包不包含嵌套的作用域node_module?

在我的情况下,有些软件包包括jquery(packageA和packageA-sub1,sub2,sub3,sub4等),并且它搞乱了我的网站,因为我已经在我的一些插件中包含了jquery。解决此问题的唯一方法是手动删除packageA文件夹中的node_module文件夹。

我试过.npmignore但这似乎不起作用:

packageA/node_modules/
packageA/node_modules
/packageA/node_modules
/packageA/node_modules/

我正在使用npm 5.8

1 个答案:

答案 0 :(得分:2)

当模块使用npm dedupe

模块共享相同版本的依赖关系时,您可以展平node_modules层次结构

文档描述npm dedupe如下:

  

搜索本地包树并尝试简化   通过将依赖关系进一步向上移动整个结构,   多个依赖者可以更有效地共享它们   包。