是否可以避免js项目中的本地node_modules?

时间:2018-03-14 10:58:20

标签: node.js npm

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

vue init webpack my-project

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

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

2 个答案:

答案 0 :(得分:3)

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

您可以使用PyObject *result的{​​{1}}开关全局安装库,我不确定-g是否有类似选项。但这是不推荐 - 在您的项目中安装库的重点是项目将记住属于它的库,这些库保存在npm中。

您可以将vue目录复制到硬盘驱动器的根目录并将其与其他package.json目录合并,但是您冒着将这种方式混合使用不同库版本的风险,因此不建议这样做。

除非您的可用空间不足,否则请保持原样。如果您使用git,请务必将node_modules添加到node_modules

答案 1 :(得分:0)

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

创建本地node_modules文件夹时非常常见或者总是这样。

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

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