You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub提交是否忽略node_modules?pull项目正确操作方法

Git 仓库依赖目录处理规则(以Svelte项目为例)

任何场景下都不要将node_modules目录提交到GitHub仓库,这个目录存放的是所有第三方安装依赖,体积从几百MB到几GB不等,还包含大量和本地操作系统、Node版本绑定的二进制文件,提交上去不仅会让仓库体积暴涨,还会导致其他设备拉取代码后运行报错。

Svelte官方脚手架生成的项目,默认会在根目录的.gitignore文件里提前写入node_modules/忽略规则,正常初始化项目不需要手动调整这部分配置。


正确操作流程

1. 首次推送本地项目到远程仓库

  • 先确认根目录存在.gitignore文件,且包含node_modules/规则,如果是手动搭建的项目没生成这个文件,自己新建一个加上对应规则即可
  • 初始提交只需要提交源码目录(src/、static/)、项目配置文件(package.json、依赖锁文件、svelte.config.js、vite配置等),不要选中node_modules目录提交
  • 推送完成后远程仓库本身就不会存储node_modules相关内容,符合代码提交规范

2. 执行clone、pull操作拉取代码时的适配

  • 第一次在新设备上git clone仓库时,拉下来的文件里没有node_modules是正常现象,不是拉取出错
  • 拉取完成后,先在项目根目录执行你所用包管理器的依赖安装命令:
    • 使用npm执行:npm install
    • 使用pnpm执行:pnpm install
    • 使用yarn执行:yarn
  • 命令执行完成后,会自动根据仓库里提交的依赖锁文件(package-lock.json/pnpm-lock.yaml/yarn.lock)安装版本完全匹配的所有依赖(包括Svelte核心库),本地自动生成node_modules目录,直接就能启动运行项目,不会出现版本不一致问题
  • 后续日常执行git pull拉取最新代码时,如果拉取的更新里包含package.json或者依赖锁文件的变动,拉完再重新执行一次依赖安装命令,更新变动的依赖即可;如果这两个文件没有改动,不需要对node_modules做任何操作,直接正常开发就行

常见误区说明
  • 不要认为“把node_modules传上去别人不用装依赖更方便”:跨设备、跨系统的node_modules本身不通用,传上去反而会导致其他人运行项目时报错
  • 不需要担心不提交node_modules会导致依赖版本不一致:只要把依赖锁文件提交到仓库,所有协作者安装的依赖版本会完全对齐,比手动上传node_modules的可靠性高很多
  • Svelte本身作为项目依赖,本身就存放在node_modules目录下,不需要单独提交,安装依赖时会自动拉取对应版本

内容的提问来源于stack exchange,提问作者badsyntax

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 07:18:25