版本控制与自动化构建生产包

268 阅读1分钟

最近做了几个项目都是政府内网中的项目,无法使用自动部署工具自动构建部署,需要运营人员手动更新生产zip包。每次更新迭代时都需要手动打包给公司运营,并且要为手动每个包手动标记上版本号。项目多了后,这么操作就有点吃不消。后思索通过sh命令自动打包。

实现方法

  1. 通过standard-version自动生成版本号。
  2. 在package中的scripts添加如下代码:
...
  "release": "standard-version",
  "zip": "./release.sh"
  ...
  1. 再编写release.sh脚本代码,如下:
#!/bin/bash

# Release branch
master="master-leqing"
# Release zip name
prefix="dist_leqing_pt_v"
git pull origin $master
echo "Current pull origin $master."
# Auto generate version number and tag
standard-version
git push --follow-tags origin $master
# get version from package
version=$(cat "./package.json" | jq ".version" | xargs)
# git push
npm run build-prod
zip -q -r -o $prefix$version.zip dist
echo "Git push origin $master"
echo "release $prefix$version.zip"
echo "Release finished."

核心是这段语句:cat "./package.json" | jq ".version" | xargs, 需要先安装jq包:brew install jq。 思路是通过jq获取package中version值。 然后拼接获取到的version,通过zip命令打包。 至此就基本完成了。可以根据实际情况用stanard-version生成语义化的版本。也可以和我一样一条命令解决。