标准答案

  1. CI 阶段通常先做冻结安装,保证依赖和 lockfile 一致。
  2. 随后运行 lint、format check、typecheck、单元测试或组件测试。
  3. 构建阶段产出静态资源,并检查 bundle 体积、环境变量、source map 和资源路径。
  4. CD 阶段负责上传静态资源、刷新或预热 CDN、切换入口 HTML、发布版本记录。
  5. 发布后要做冒烟测试、监控观察和必要的自动回滚或人工回滚准备。

题目解析

CI/CD 不是把本地命令搬到流水线里这么简单。它的价值是让每次提交、合并和发布都经过同一套可复现检查,并留下可以追踪的产物和版本记录。

前端流水线尤其要处理构建产物问题:环境变量是否串环境,资源 public path 是否正确,source map 是否按策略上传,hash 资源是否先于 HTML 发布,旧版本是否还能回滚。

流水线要分层。提交前可以跑快检查,合并前跑完整质量门禁,发布前做产物和环境校验,发布后用监控和冒烟确认真实用户路径。

代码示例

一个简化的前端流水线可以按质量门禁和发布动作分开。

Text
install -> lint -> typecheck -> test -> build
      -> artifact check -> upload assets -> switch release
      -> smoke test -> monitor -> rollback if needed

常见误区

  • CI 只跑 build,不跑类型检查、测试或基础质量门禁。
  • 流水线安装依赖时不使用冻结安装,导致每次构建依赖可能不同。
  • 发布后没有冒烟和监控观察,用户报错后才知道新版本异常。

作者信息