Javascript 将节点模块添加到gitignore

Javascript 将节点模块添加到gitignore,javascript,node.js,Javascript,Node.js,我在很多论坛上都问过这个问题。E 为什么我们要将节点模块添加到gitignore。难道它没有我们的项目依赖关系吗。? 当用户复制我的repo并在其本地运行它时,它应该是所有依赖项 依赖项列在文件中,必须共享,才能让其他用户加载相同的模块。当npm install命令加载package.json中列出的模块时,文件夹节点_modules包含加载的模块 加载的节点模块太重,无法直接共享,这就是为什么在将代码提交到共享存储库时必须忽略此文件夹的原因 注意:要与其他用户共享特定版本的节点模块,如果使用命

我在很多论坛上都问过这个问题。E 为什么我们要将节点模块添加到gitignore。难道它没有我们的项目依赖关系吗。?
当用户复制我的repo并在其本地运行它时,它应该是所有依赖项

依赖项列在文件中,必须共享,才能让其他用户加载相同的模块。当
npm install
命令加载package.json中列出的模块时,文件夹节点_modules包含加载的模块

加载的节点模块太重,无法直接共享,这就是为什么在将代码提交到共享存储库时必须忽略此文件夹的原因


注意:要与其他用户共享特定版本的节点模块,如果使用命令
npm install--save express
安装express.js,则可以使用

,例如,项目中的package.json文件将使用该依赖项进行更新

如果执行
npm安装
,它将自动安装package.json文件中列出的所有依赖项


因此,您只需要在git repo中包含package.json文件。

即使我之前也这么认为,后来我意识到,js文件太多了,如果您注意到node modules文件夹中会有2000-4000个受支持的文件,很难维护

主要原因是,当后端构建发生时,构建系统会尝试捆绑所有这些文件,即使它们不在生产环境中使用,因为它们在代码库中是物理可用的


因此,最好忽略这些文件,这样可以缩短构建时间。

因此,如果我在任何服务器上部署代码,如何处理moduke?如果服务器允许internet连接,则必须在根存储库中启动命令
npm install
。另一个解决方案是使用您自己的存储库管理器覆盖npm,并在项目团队内或通过服务器共享预加载的模块。否则,复制/粘贴将是最后一个解决方案:)对于node.js,所有依赖项都应列在您的
包中。json
,因此,您不需要将节点模块目录添加到版本控制中,但您可能会争辩说,将其置于版本控制之下也是一个好主意,这样,即使npm关闭,您也可以始终确保在进行展开时拥有所有模块。但是对于具有本机代码的模块可能会有问题。