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

黄祖

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

node_modules中的未知模块示例:

  • 各不相同
  • 状态
  • 发送
  • 诺言

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

SlashmanX

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

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

这里的npm changelog中提到了它

现在,您的依赖项将最大程度地平面安装。在可能的情况下,所有依赖关系及其依赖关系和THEIR依赖关系都将安装在项目的node_modules文件夹中,而不会嵌套。当两个(或更多)模块具有相互依赖的依赖关系时,您只会看到模块彼此嵌套。

#3697这有望消除大多数Windows用户最终使用路径而导致资源管理器和其他标准工具无法处理的情况。

#6912(#4761#4037)这也意味着您的安装将从一开始就被重复数据删除。

#5827此重复数据删除甚至扩展到git deps。

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

npm uninstall会删除您指定的模块的任何其他模块不需要的依赖项。以前,它只会删除恰好安装在其下的那些文件,如果您进行过重复数据删除,则会导致剩余的文件残骸。现在,npm ls会向您显示依赖项树,它围绕什么需要什么而组织,而不是那些模块在磁盘上的位置。

#6937 npm重复数据删除现在除了消除重复数据以外,还使树变平坦。打包或发布更改时也捆绑依赖项:

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

#5437捆绑既是devDependency又是常规依赖项的子项的依赖项时,npm会捆绑子项依赖项。为了证明我们对自己的工作充满信心,现在以npm @ 3样式将npm自己的依赖项进行了展平,重复数据删除和捆绑。这意味着npm @ 2不能打包或发布npm @ 3,如果您在npm上进行黑客攻击,则需要注意这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么http模块不在node_modules文件夹中?

Laravel中的node_modules文件夹是什么?

删除node_modules文件夹

打字稿找不到'node_modules'文件夹中的第三方模块

为什么安装一个npm软件包会在node_modules中添加许多子文件夹?

使用CopyWebpackPlugin如何在不创建node_modules文件夹的情况下将文件从node_modules复制到文件夹中

Node.js如何从全局安装的包中查找本地的node_modules文件夹

在Node.js / NPM中归档或备份node_modules文件夹的最佳方法

如何在 Heroku 的 node_modules 文件夹中编辑文件?

npm:我可以删除全局 node_modules 文件夹中的空文件夹吗?

如何获取“ node_modules”文件夹内容

如何告诉 Codeship 忽略 node_modules 文件夹?

Webpack使用错误的node_modules文件夹

删除所有node_modules子文件夹

更改node_modules文件夹的位置

npm安装未创建node_modules文件夹

打包后嵌套的node_modules文件夹消失

Angular 4 node_modules的文件夹很重

更改node_modules文件夹结构?

使用命令行从指定路径中递归删除node_modules文件夹

删除node_modules中的.cache文件夹是否安全?

将node_modules / .bin中的所有shebang链接到当前文件夹

如何清除不在package.json中的软件包的node_modules文件夹?

Typescript构建从node_modules文件夹中获取错误

如何在VSCode中的TypeScript构建期间忽略`node_modules`文件夹

git存储库中是否应包含“ node_modules”文件夹

如何从VSTS中的发布工件中排除node_modules文件夹

node_modules中.bin文件夹的用途是什么?

告诉Resharper忽略node_modules中的lib文件夹