# Dependencies node_modules/ backend/local-maven/ backend/build-temp/ backend/.m2/ __pycache__/ *.py[cod] *.lock package-lock.json yarn.lock pnpm-lock.yaml # 例外:依赖锁文件必须入库,CI 的可复现安装依赖它们。 # # 2026-09-22 修复背景:上面四条规则此前把 admin-web/pnpm-lock.yaml 与 # miniapp/package-lock.json 一并挡在版本控制之外,于是 CI checkout 后的环境 # 与本机完全不同: # - admin-web:`pnpm install --frozen-lockfile` 找不到 lockfile → 直接失败 # (frozen 模式的语义就是「必须存在且不可变更」,缺文件不是警告而是错误); # - miniapp:`npm install` 无 lockfile 约束,版本随上游浮动, # `npx tsc --noEmit` 的结果不与任何一次本地验证对齐。 # 二者共同导致「本地绿、CI 红」且二者都不可解释。 # # 只放行每个包真正使用的那把锁:admin-web 走 pnpm,miniapp 走 npm。 # admin-web/package-lock.json 仍然忽略 —— 同一目录并存两把锁会让两种包管理器 # 各自按自己的锁安装,漂移时彼此看不出问题,属于典型的双锁冲突。 !admin-web/pnpm-lock.yaml !miniapp/package-lock.json # Build outputs backend/target/ admin-web/dist/ miniapp/dist/ miniapp/unpackage/ # vite 在 dev server 被强杀(未优雅退出)时会遗留配置临时文件 admin-web/vite.config.ts.timestamp-*.mjs # IDE .idea/ .vscode/ *.iml *.iws *.ipr .DS_Store # Environment variables with secrets backend/src/main/resources/application-dev.yml *.env !.env.example # Logs *.log logs/ # Test data .pytest_cache/ tests/fixtures/*.csv tests/fixtures/*.json # Local workspace and developer settings .worktrees/ .zcode/ .workbuddy/ project.private.config.json /nul /infrastructure/nul # OS files Thumbs.db .DS_Store # Secrets and certificates docker-compose.prod.yml infrastructure/secrets/ infrastructure/certs/ infrastructure/backups/ # Local artifacts and backups artifacts/backups/ *.dump *.bundle