我已经更新了我用于我的grunt项目的node / npm。
但是,当我现在想要将一个包添加到项目myproject/
(比如npm install grunt-favicon
)时,它似乎会向myproject/node_modules/
添加数百个文件夹,而它只用于添加一个 - 通常以node_modules/grunt-favicon
之类的grunt为前缀。
我对这些事情的了解是基本的,但这些似乎是必需的依赖项,甚至其中一些项目还有更多的依赖项。
它不应该在其他地方添加这些依赖项吗?如果是这样,我该怎么纠正呢?
我使用npm 3.3.5
,node 4.1.1
,grunt-cli v0.1.13
和grunt v0.4.5
。
此屏幕截图左侧显示~/.npm
,右侧显示~/myproject/node_modules
答案 0 :(得分:30)
这是正确的,不用担心。你还在本地安装软件包,只是目录结构看起来有点不同。这是在npm v3.0.0中更改的行为:现在所有依赖项的依赖项都直接安装在node_modules
文件夹中(只要这不会导致版本冲突)。这大大减少了文件树的大小。
扁平,平坦!
您的依赖项现在将最大程度地安装。在可能的情况下,所有依赖项及其依赖项和它们的依赖项都将安装在项目的node_modules文件夹中,而不进行嵌套。当两个(或更多)模块具有冲突的依赖关系时,您将只看到彼此嵌套的模块。