【问题标题】:Is it possible to avoid local node_modules in js projects?js项目中是否可以避免本地node_modules?
【发布时间】:2018-03-14 19:14:36
【问题描述】:

我正在探索 nodejs 和 js 框架。我注意到当我创建一个项目时,例如使用vue

vue init webpack my-project

我得到一个名为 node_modules 的巨大目录,其中包含许多与我的项目无关的内容。这个领域的新手我唯一的愿望是gitignore这个文件夹或者更好,把它放在别的地方。

在项目中使用本地模块是否常见?有没有办法在全局或专用环境(例如 Python virtualenv)中安装所有这些依赖项?

【问题讨论】:

  • 简而言之,node_modules 是一个存放你所有项目依赖的地方。并允许您根据需要在代码中使用这些依赖项。创建本地 node_modules 文件夹时,这种情况很常见,或者说总是如此。您可以通过执行“npm install -g module_name”命令来全局安装依赖项
  • 为什么把它放在别的地方会更好?

标签: node.js npm


【解决方案1】:

该目录确实包含您的项目所需的库 - 及其依赖项。根据我的经验,我使用的库的依赖项大约是文件夹大小的 3/4。

您可以使用npm-g 开关全局安装库,我不确定vue 是否有类似的选项。但这是不推荐 - 在项目中安装库的目的是项目会记住属于它的库,这些库保存在package.json

您可以将node_modules 目录复制到硬盘驱动器的根目录,然后将其与其他node_modules 目录合并,但这样做存在混合不同库版本的风险,因此不建议这样做.

除非您的可用空间不足,否则请不要使用它。如果您使用 git,请记住将 node_modules 添加到 .gitignore

【讨论】:

    【解决方案2】:

    简而言之,node_modules 是存储所有项目依赖项的地方。并允许您根据需要在代码中使用这些依赖项,并允许模块本身拥有自己的依赖项(如果有)。

    当创建本地 node_modules 文件夹时,这种情况很常见,或者说总是如此。

    您可以通过 CLI 执行 npm install -g module_name 命令来全局安装依赖项。但是如果全局路径配置不正确,这些可能会导致问题。此外,不建议将应用程序所需的所有依赖项保留在全局上下文中。

    如果您不希望某些依赖项成为生产环境的一部分,您可以通过npm install--save-dev module_name 命令将它们安装为开发依赖项。当开发人员克隆您的项目并在本地运行 npm install 以运行项目并运行测试时,将安装这些(正常和开发依赖项)。但是要忽略这些安装在生产环境中,您可以执行npm install --production 命令,这将确保您的代码运行所需的依赖项将安装在 node_modules 文件夹中。

    【讨论】:

      猜你喜欢
      • 2017-04-09
      • 2022-07-25
      • 2015-07-13
      • 2022-12-12
      • 2017-07-01
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2015-07-10
      相关资源
      最近更新 更多