【问题标题】:Many unknown modules in node_modules foldernode_modules 文件夹中有许多未知模块
【发布时间】:2016-03-13 13:48:50
【问题描述】:

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

node_modules 中的未知模块示例:

  • 变化
  • 状态
  • 发送
  • 承诺

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

【问题讨论】:

    标签: node.js


    【解决方案1】:

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

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

    在 npm 更新日志中提到了here

    您的依赖项现在将安装到最大平面。只要是 可能,您的所有依赖项及其依赖项,以及他们的 依赖项将安装在项目的 node_modules 文件夹中 没有嵌套。您只会看到相互嵌套的模块 当两个(或更多)模块具有冲突的依赖关系时。

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

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

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

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

    npm uninstall 删除您安装的模块的任何依赖项 指定的任何其他模块都不需要。此前,它 只会删除那些碰巧安装在它下面的, 如果您曾经进行过重复数据删除,则会导致遗留问题。 npm ls 现在显示 您的依赖关系树围绕需要什么进行组织,而不是 比那些模块在磁盘上的位置。

    #6937 npm dedupe 现在除了重复数据删除之外还可以展平树。打包或发布更改时也捆绑依赖项:

    #2442 bundledDependencies 不再要求您指定去重的子部门。 npm 现在可以看到某些东西需要依赖项 捆绑并自动包含它。换句话说, bundledDependencies 应该只包含你包含的东西 依赖项、可选依赖项或 devDependencies。

    #5437 捆绑既是 devDependency 又是常规依赖项的子依赖项的依赖项时,npm 会捆绑子依赖项。作为一个 展示我们对自己的工作,npm 自己的工作的信心 依赖项现在被扁平化、重复数据删除和捆绑在 npm@3 中 风格。这意味着 npm@3 不能被 npm@2 打包或发布, 如果您在 npm 上进行黑客攻击,请注意这一点。

    【讨论】:

    • 谢谢。直截了当且有帮助的答案!
    猜你喜欢
    • 2019-04-16
    • 1970-01-01
    • 2023-03-09
    • 2021-08-27
    • 2022-12-19
    • 2019-10-19
    • 2021-09-04
    • 2019-02-11
    • 2018-08-22
    相关资源
    最近更新 更多