在团队中,开发流程相关的调整一定要相应的自动化工具配合。如果没有足够低的使用成本,这种调整将会是无意义的,因为根本就不会有人去使用。上一篇,我们提到 如何利用 CDN 进一步的前后端分离 , 这一篇主要讲,如何将这个流程结合到 CI 中。后端的配置,之前的 博客 中已经提及很多。后端 CI 主要是做代码检查,推送代码到 SVN 仓库,CI 部分本篇不会涉及。
1. 版本约定
前端版本由 package.json 文件决定。package.json 文件结构如下:
| |
前端打包输出的文件在当前目录的 static 目录下:
| |
前端静态链接形式约定:
| |
版本号直接放在访问的 URL 中,这样可以方便做多版本管理。同时不需要每次发布之后需要强制刷新 CDN ,以更新缓存。
前端的版本由前端控制,正式发布的版本应该是偶数版本。发布之后,需要将版本号最后一位加一。同时,每次发布版本,需要在 GitLab 仓库的 wiki 中记录变更的内容。
2. 前端改造
由于对页面进行了 JS 拆分优化,页面默认引用的是本地的 JS。通过修改 publicPath 属性,可以将引用的路径指向 CDN。
| |
3. 后端改造
后端使用的是 Django。后端改造的目的有两个:
- 适配不同环境,有三个环境:本地、测试、正式。
- 前端版本控制。
适配不同环境主要是通过目录结构。前端版本控制需要从数据库中读取一条配置,前端发布时,修改配置即可。
settings.py,适配不同环境
| |
views.py,获取前端版本配置
| |
index.html,引用静态版本文件
| |
4. 前端 GitLab 仓库
前端仓库新增了三个文件:
- .gitlab-ci.yml,CI 配置
- get_version.sh,获取前端版本脚本
- upload.py,上传到腾讯云 COS 脚本
下面是,前端代码仓库的 .gitlab-ci.yml 文件配置
| |
get_version.sh,获取 package.json 文件中的前端版本号
| |
DEPLOY_CMD 是在 GitLab Settings Pipelines 页面新增的环境变量,值为:
| |
前端文件上传腾讯云 COS 代码脚本,本地 ./static/ 目录,上传到云上 /:version/static/ 目录。
| |
5. 最终效果
腾讯云 COS

访问应用首页
| |






















