通过 zx.js 编写 deploy 部署脚本
2023/07/06 00:00:00
野技能
A tool for writing better scripts

背景

2022 年 8 月 5 日,谷歌开源了一款工具,受到了大家的欢迎,到目前这个项目已经收获了 37.8k 的 star,很多小伙伴都反馈这款工具很好用。
问:什么是 zx.js 呢?
答:用 js 写终端命令,对就是这样了~

介绍

首先你得全局安装一下 zx , 这里有一个 node>=16.0 版本要求。
安装好后,你就可以快乐的开始编写各种脚本了~
比如:
执行 test.mjs
所以,到这里你就能理解了,你可以直接通过编写 js 文件,然后就可以按照我们的编写的脚本在终端中执行了。是不是很香?
别急,你甚至可以 await 它,请看:
这时候 output 的结果将会是

编写部署脚本

整理思路

首先我们需要实现的内容是部署,那么部署我们会经历几个比较重要的环节:
  1. 配置部署环境、node 版本,因为我们本地运行是好的,所以跳过。
  1. 安装依赖,本地已经安装好了依赖,所以也跳过。
  1. 构建
  1. 上传到 CDN
  1. tag
  1. 提交到 GitHub

检测安装 coscmd

然后我们需要确定一个事情,我们上传的 CDN 需要安装一个 SDK,在这里我们采用的是腾讯的 COS,那么需要用到的包就是 coscmd
首先,我们需要去检测一下用户是否安装了 coscmd,没有的话需要提示他安装。
在这里,如果你没有安装 Python 的话,需要先去安装 Python 不然是没有 pip 命令的,如果你安装的是 Python3 那么你的命令是 pip3.

获取当前项目版本

我们一般情况在发布完成之后都需要去更新一下版本号,在这里我们简单实现一个只更新版本号最后一位的功能。
💡
需要注意一点,在 windows 中是没有 cat 命令的,在这里需要去采用替代的命令,比如 type 命令:https://newsn.net/say/win-cat.html

构建

打包我们的项目之前,可以先手动清理一下 dist,当然现在绝大多数的构建工具都支持 build 之前先自动清理 dist,不过我们还是自己去实现一下,因为这个比较简单。
执行完之后就可以正常看到最新的 dist 目录了,这时候只需要去通过命令把代码上传到 COS 中就完成了~

上传 CDN

上传 CDN 我们用的是 coscmd ,下面是具体的使用文档:
  • coscmd config 可以用来配置上传所必备的鉴权信息
  • coscmd upload 则是我们的上传文件的命令了
到这里,我们其实就已经发布到线上了,那么接下来我们就要去做最后一步,打 tag。

打 Tag

提示