前端工程化 词条目录
前端Wiki/词条/自动化部署

自动化部署

定义把构建、测试、上传、发布等发布步骤由流水线自动执行,从前端工程化通向 CI/CD 的最后一公里

自动化部署的标准链路是:push 代码 → CI 跑 lint/test/build 产出静态产物 → 上传到 CDN/对象存储 → 刷新或灰度发布。前端产物多是纯静态文件,因此它天然适合自动化:一条流水线写好,之后每次合 main 自动出新版本,无需任何人手动 FTP 或者本地 build 再传服务器。

工具链分三层:CI/CD 平台(GitHub Actions / GitLab CI / Jenkins)负责执行,构建用 npm/scripts,产物落地到 CDN(OSS/S3/Vercel/Netlify)。进阶能力包括:环境变量按环境注入、产物带内容哈希实现长效缓存、灰度发布与一键回滚。核心收益不是快,而是「发布这个动作可复现、可审计、可回滚」。

JavaScript
// .github/workflows/deploy.yml —— GitHub Actions 自动部署
name: Deploy

on:
  push:
    branches: [main]          # 合并 main 即部署

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: 20, cache: 'pnpm' }
      - run: pnpm install --frozen-lockfile
      - run: pnpm test         # 测试不过,流水线在此终止
      - run: pnpm build        # 产物在 dist/(文件名带内容哈希)
      - name: 发布到静态托管
        run: aws s3 sync dist/ s3://my-app/${{ github.sha }}/
      - name: 切换线上版本(灰度/回滚只改一个指针)
        run: aws s3api copy-object --copy-source my-app/${{ github.sha }}/index.html --key prod/index.html --bucket my-app
⚠ 常见误区
🔗 相关词条CI/CD 流水线微前端与部署策略
← 返回来源章节CI/CD 流水线