【问题标题】:Why do we need multiple node modules folders inside each project?为什么我们在每个项目中都需要多个节点模块文件夹?
【发布时间】:2022-01-16 02:23:19
【问题描述】:

我是 JS 开发的新手,我想知道节点模块的大小是一个值得关注的问题,当许多项目堆积起来并且没有使用时,甚至必须继续删除文件夹,为什么我们不能有一个全局节点模块文件夹,比如 maven 的 m2,然后在我们的项目中引用它?

为什么我们在每个项目中都需要多个节点模块文件夹?

【问题讨论】:

    标签: javascript node.js npm node-modules


    【解决方案1】:

    由于 java 脚本没有编译,我们需要在每个部署中的所有插件都编译好 maven,这样我们就可以在全局安装插件的情况下将其编译为机器代码

    【讨论】:

    • 在每个项目中有一个节点模块是完全可选的。您可以全局安装包并在您的项目中使用。但问题是当包得到更新时,代码可能会中断。因此,最好有每个项目特定的节点模块。
    【解决方案2】:

    各种原因。仅供参考,您可以在安装时使用 -g 标志全局安装 npm 包。

    以下是一些原因:

    1. 不同的项目可能需要不同版本的包。
    2. 一台机器可以包含多个不同的环境,即 容器或虚拟机。
    3. 在项目/环境之间共享代码会带来潜在的安全风险。
    4. 由于上述原因以及其他原因,您可能实际上并不想要一个项目 包以离开该项目的范围。

    【讨论】:

      【解决方案3】:

      您可以在全局范围内安装软件包并在使用npm install 时使用它们with the -g flag。

      但这并不经常这样做,而且通常不建议这样做,因为同一个包可以有很多很多不同的版本。 SomeLibrary 5.6.1 版可能与 SomeLibrary 5.7.1 版有很大不同。如果您有多个项目,它们通常会有不同的依赖项和不同的依赖项版本。如果您尝试从 same 全局安装中获取它们,您通常会很快遇到问题。每个项目都有一个单独的node_modules 文件夹可以为您解决这个问题;通常,您拥有的每个项目的包版本控制将“正常工作”而无需任何额外配置。

      还有像Yarn这样的管理器可以缓存包下载,这样你就不会在多个项目中重新下载大量重复的兆字节

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-22
        • 1970-01-01
        • 2020-12-28
        相关资源
        最近更新 更多