开发
开发阶段是工程化落地最密集的环节,直接影响团队的协作效率和项目的可维护性。
关键事项
1. 项目初始化
- 优先用官方/社区脚手架(create-vite、create-next-app),再按需定制
- 大型团队可自研 CLI 脚手架,统一技术栈 + 预置规范
2. 规范落实
- 编码层:ESLint + Prettier + Stylelint(详见 统一编码规范)
- 提交层:Husky + lint-staged + Commitlint
- 协作层:Code Review、PR 模板(详见 GitWorkflow)
单人维护的小项目可以适当精简,避免过度工程化。
3. 构建工具
主流选型:
| 工具 | 适用场景 | 特点 |
|---|---|---|
| Vite | 新项目首选 | 开发秒级启动,原生 ESM |
| webpack5 | 老项目、生态完备 | 插件最丰富,配置复杂 |
| Rollup | 类库开发 | 产物干净,tree-shaking 友好 |
| esbuild / SWC | 替代 babel | 速度提升 5~10x |
4. 多环境管理
环境分层:dev → test → staging → production。
- 本地:
.env.local(不进 git) - 团队共享:
.env.development、.env.test、.env.production - CI(GitHub Actions / GitLab CI):用平台的
secrets注入 - Docker 部署:
docker run -e KEY=value运行时传环境变量docker-compose.yml的environment字段- Docker Swarm 的
docker secret(挂载到/run/secrets/) - ⚠️ 避免用
ARG/--build-arg传敏感信息,会持久化到镜像层
- K8s 部署:用
Secret资源 +envFrom/valueFrom注入到 Pod
详细部署策略见 部署 - 自动化部署。
5. Code Review
- 时机:合并前必过;可以走 PR/MR 流程
- 关注点:业务正确性、命名可读性、性能、测试覆盖
- 反模式:纯挑格式问题(应该让 lint 自动处理)、空 review
6. 公共物料
- 私有 npm:组件库、工具 hooks、自研 SDK
- 组件库:业务组件、UI 组件
- 工具库:util、hooks、constants
- 推荐用 monorepo(pnpm workspace / turborepo)管理