JavaScript项目仅用Node运行ESLint,需忽略node_modules?
你绝对需要用.gitignore忽略node_modules文件夹
别担心,你完全没多虑——忽略node_modules是Node.js项目的标准操作,原因主要有这几点:
- 体积与效率问题:17MB现在看起来不算大,但随着项目迭代,依赖包只会越来越多,很快就会膨胀到几十甚至上百MB,不仅拖慢仓库的克隆速度,还会无端占用GitHub的存储空间,完全没必要。
- 依赖可复现性:你的项目里应该有
package.json和package-lock.json(或yarn.lock/pnpm-lock.yaml)吧?这些文件已经精准记录了所有依赖的版本信息,其他人克隆项目后,只需要运行npm install(或对应包管理器的安装命令),就能一键生成完全一致的node_modules文件夹,根本不需要把它上传到仓库。 - 避免不必要的冲突:不同操作系统、Node版本下,
node_modules里的部分文件可能存在细微差异(比如编译后的二进制文件),上传到仓库反而可能导致协作时的版本冲突,而且这些文件都是可重新生成的临时文件,完全不属于版本控制的范畴。
具体操作步骤
- 在项目根目录创建一个名为
.gitignore的隐藏文件(注意文件名前的英文点号)。 - 在
.gitignore文件中添加一行内容:node_modules/ - 如果已经把
node_modules提交到了GitHub仓库,还需要先将其从Git的追踪列表中移除(不会删除本地的node_modules文件夹),运行以下命令:git rm -r --cached node_modules - 最后提交更改并推送到远程仓库:
git add .gitignore git commit -m "Add .gitignore and stop tracking node_modules" git push
这样处理后,node_modules就不会再被上传到GitHub仓库了。
内容的提问来源于stack exchange,提问作者Tristan Forward
相关产品推荐
相关产品推荐

