# CI/CD 设计与部署方案 ## 目标 提供从代码质量到产物构建的自动化流程:lint → typecheck → build。 ## GitHub Actions(推荐) - 工作流文件参见补丁 `0003-github-actions-ci.patch`,关键步骤: - 使用 `actions/setup-node@v4` + `corepack enable`; - 安装依赖:`pnpm i --frozen-lockfile`; - 执行 `pnpm lint && pnpm typecheck && pnpm build`。 ## 部署对比 - Vercel(推荐) - 优点:零配置、内置 CDN、适配 Nuxt/Nitro;Preview 环境完善。 - 缺点:免费额度受限;对长时间 SSR 任务需商用套餐。 - Docker(自管) - 优点:环境一致性高;更灵活接入内网服务。 - 缺点:需自建 CI/CD 与监控;维护成本更高。 - 自建 Node + Nginx - 优点:成本可控;传统可见性强。 - 缺点:手工配置多;需要额外缓存/CDN 配合。 ## Dockerfile(示例) ```dockerfile FROM node:20-alpine AS build WORKDIR /app COPY . . RUN corepack enable && pnpm i --frozen-lockfile && pnpm build FROM node:20-alpine WORKDIR /app ENV NODE_ENV=production COPY --from=build /app/.output ./.output EXPOSE 3000 CMD ["node","./.output/server/index.mjs"] ``` ## 环境变量与密钥 - 在 CI 中设置 `NITRO_PRESET`、`SENTRY_DSN` 等;Nuxt 通过 `runtimeConfig` 注入,避免硬编码。