项目的规模增大了之后,每一次上线的时候可能会有缓存,现在为了标记每次更新的版本也方便测试人员对比版本的更新信息,设置一个时间用于记录发布的版本。
功能
在每次的 build 之前,运行一个脚本,功能是记录本次 build 的时间,并写在 .env 文件中。
const fs = require("fs");const path = require("path");console.log();let env = fs.readFileSync(path.join(process.cwd(), ".env.test"), "utf-8");const envPairs = env.split("\n\n");// 最后一条是需要的更新的数据if (envPairs[envPairs.length - 1].split(" = ")[0] === "VUE_APP_DEPLOY_TIME") {envPairs.pop();env = envPairs.join("\n\n");}const lastOne = `VUE_APP_DEPLOY_TIME = ${new Date()}`;env = env.concat("\n\n").concat(lastOne);fs.writeFileSync(path.join(process.cwd(), ".env.test"), env, "utf-8");
这样可以在每次 build 的时候更新时间。
"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint","test": "jest --coverage","bootstrap":"node ./scripts/bootstrap.js","build:test":"npm run bootstrap && npm run build --mode test"},
更新了的是 .env.test 文件,所以是用在 test 环境下的。
在代码中是这样的:
if (process.env.VUE_APP_ENV === "test" &&process.env.NODE_ENV === "production") {console.log(`%c ${process.env.VUE_APP_ENV}%c version deployed at %c ${process.env.VUE_APP_DEPLOY_TIME}`,"color:#905cda","","color:#447bdb");}
效果:

