发现问题
项目上线
经过了一段时间的打包(即熟悉的npm run build
)、压缩(通过压缩工具压成.zip
包)、上线(把压缩包发给上线人员),终于,发现了有优化的空间,哈哈。
什么?项目上线还属于人工操作?利用压缩包的方式?还没用到自动化部署?
打扰了,打扰了。
主角登场
找了一下,发现了一个好用又方便的包 compressing
,支持压缩文件夹,支持zip
压缩。
开始压缩
程序能做到压缩,为啥还要自己手动去压缩,于是,就有了下面的故事。
const path = require("path");const fs = require("fs");const chalk = require("chalk");// 这个是主角const compressing = require("compressing");const dayjs = require("dayjs");const resolve = dir => path.join(__dirname, "..", dir);const publishPath = resolve("publish");const zipName = (() => `publish/fzApp ${dayjs().format("YYYYMMDD_HHmm")}.zip`)();// 判断是否存在当前publish路径,没有就新增if (!fs.existsSync(publishPath)) { fs.mkdirSync(publishPath);}compressing.zip .compressDir(resolve("dist/"), resolve(zipName)) .then(() => { console.log(chalk.yellow(`Tip: 文件压缩成功,已压缩至【${resolve(zipName)}】`)); }) .catch(err => { console.log(chalk.red("Tip: 压缩报错")); console.error(err); });
问题解决
在自动压缩这个点上,问题是解决了的。
于是,以后上线的流程变成了:
打包(npm run build && npm run zip
)、上线(发送zip
压缩包给上线人员)。