⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

8.4.1 黑名单第一条——依赖与构建产物

node_modules 是 .gitignore 的头号目标——它太大、能重建、每个人的都可能不同。

依赖目录

node_modules

gitignore
# 任何位置的 node_modules
**/node_modules/

# pnpm 存储(如果使用)
.pnpm-store/

为什么不提交

  • 体积巨大(几百 MB 到几 GB)
  • 可通过 pnpm install 完全恢复
  • 不同系统可能有平台相关的二进制文件

正确做法

  • 提交 package.jsonpnpm-lock.yaml
  • 通过锁文件确保依赖版本一致

其他依赖目录

gitignore
# Python
__pycache__/
*.pyc
venv/
.venv/

# Go
vendor/

# Ruby
.bundle/

构建产物

Next.js 构建

gitignore
# Next.js 开发和生产构建
.next/

# 静态导出
out/

# 独立部署
.next/standalone/

通用构建目录

gitignore
# 常见构建输出
dist/
build/
output/

# TypeScript 编译
*.tsbuildinfo

# Webpack/Vite
.cache/

打包工具产物

gitignore
# Turbo
.turbo/

# Storybook
storybook-static/

# Bundle 分析
.next/analyze/
stats.html

日志文件

gitignore
# npm/pnpm 日志
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*

# 应用日志
*.log
logs/
*.log.*

# PM2 日志
.pm2/logs/

测试与覆盖率

gitignore
# Jest/Vitest
coverage/
.nyc_output/

# Playwright
test-results/
playwright-report/
playwright/.cache/

# Cypress
cypress/screenshots/
cypress/videos/

完整示例

gitignore
# =========================================
# 依赖
# =========================================
node_modules/
.pnpm-store/

# =========================================
# 构建产物
# =========================================
.next/
out/
dist/
build/
*.tsbuildinfo

# =========================================
# 日志
# =========================================
*.log
npm-debug.log*
pnpm-debug.log*

# =========================================
# 测试
# =========================================
coverage/
test-results/
playwright-report/

# =========================================
# 缓存
# =========================================
.cache/
.turbo/
.eslintcache

已提交的文件如何处理

如果不小心提交了 node_modules:

bash
# 1. 添加到 .gitignore
echo "node_modules/" >> .gitignore

# 2. 从 Git 历史中移除(但保留本地文件)
git rm -r --cached node_modules/

# 3. 提交变更
git commit -m "chore: 移除 node_modules 并添加到 gitignore"

# 4. 如果已推送,需要强制推送(谨慎使用)
git push --force-with-lease

AI 协作指南

示例 Prompt

"我的 Next.js 项目用 pnpm 和 Prisma,请帮我生成完整的 .gitignore,包含依赖、构建产物、日志等。"

验收清单

  • [ ] 理解 node_modules 不该提交的原因
  • [ ] 能配置构建产物的忽略规则
  • [ ] 知道如何处理意外提交的文件
  • [ ] 理解日志和测试产物的忽略