node_modules文件夹中有许多未知模块

时间:2015-12-08 15:10:06

标签: node.js

我是nodejs的新手。我发现在我的本地项目中安装了三个模块(express,jade,gulp)后,node_modules文件夹中有许多未知模块。

node_modules中的未知模块示例:

  • 变化
  • 状态
  • 发送

从我看到的其他人的教程中,在他们安装gulp之后,他们的node_modules文件夹中只有一个“gulp”文件夹,但这不是我的情况。为什么?谢谢。

1 个答案:

答案 0 :(得分:1)

最近更新了节点包管理器(npm),作为该更新的一部分,所有模块都安装在顶级node_modules文件夹中。这包括您的依赖项需要安装的模块。在过去,这些模块将嵌套在node_modules中的另一个express文件夹中(例如)。

这就是为什么您阅读的教程说的不同,可能是在此更新之前编写的。

在npm changelog here

中提到
  

您的依赖项现在将最大程度地安装。就目前而言   可能的,所有依赖项,它们的依赖项,以及它们   依赖项将安装在项目的node_modules文件夹中   没有嵌套。您只会看到彼此嵌套的模块   当两个(或更多)模块具有冲突的依赖关系时。

     

#3697这有望消除大多数Windows用户最终路径对于Explorer和其他标准来说太长的情况   处理的工具。

     

#6912(#4761#4037)这也意味着您的安装将从头开始扣除。

     

#5827这个重复数据删除甚至延伸到git deps。

     

#6936(#5698)现在可以识别各种命令重复数据删除。这对其他命令的行为有一些影响:

     

npm uninstall会删除您所在模块的所有依赖项   指定的任何其他模块都不需要。以前,它   只会删除那些碰巧安装在它下面的那些,   如果你被扣除,导致遗留下来。 npm ls现在显示   你的依赖树是围绕什么需要什么组织的   而不是那些模块在磁盘上的位置。

     

#6937 npm重复数据删除现在除了重复数据之外还会使树变平。在打包或发布更改时捆绑依赖项也是如此:

     

#2442 bundledDependencies不再需要您指定重复数据删除的子deps。 npm现在可以看到某个东西需要依赖   捆绑并自动包含它。换句话说,   bundledDependencies只应包含您包含的内容   dependencies,optionalDependencies或devDependencies。

     

#5437当捆绑同时具有devDependency和普通依赖项子项的依赖项时,npm会捆绑子依赖项。作为一个   证明了我们对自己工作的信心,这是我自己的   依赖关系现在在npm @ 3中被展平,重复数据删除和捆绑   样式。这意味着npm @ 3无法打包或发布npm @ 3,   如果你正在攻击npm,这是值得注意的事情。