VUE项目打包自动更新版本号
此方法只针对 Vue 如果使用其他框架,可以此参照作为参考

一、先看效果

在这里插入图片描述

二、创建 buildVersion.js 文件

在这里插入图片描述
文件内容 目前只针对3位版本号
递增规则是 每次更新 加一次小版本,10次小版本向前递增一个版本。如:1.0.9 递增后 1.1.0

let fs = require("fs");
const getPackageJson = () => {
  // 读取文件
  let data = fs.readFileSync("./package.json");
  // 转换为 JSON 对象
  return JSON.parse(data);
};

let packageData = getPackageJson();

const updateVersion = () => {
  let version = packageData.version.split(".");
  let major = parseInt(version[0]); // 主版本号
  let minor = parseInt(version[1]); // 次版本号
  let patch = parseInt(version[2]); // 小版本号

  // 检查并更新版本号
  if (patch < 9) {
    patch++; // 递增小版本号
  } else {
    patch = 0; // 重置小版本号
    if (minor < 9) {
      minor++; // 递增次版本号
    } else {
      minor = 0; // 重置次版本号
      major++; // 递增主版本号
    }
  }

  // 更新版本号
  packageData.version = `${major}.${minor}.${patch}`;

  // 获取当前日期和时间
  let now = new Date();
  let formattedDate = `${now.getFullYear()}-${String(
    now.getMonth() + 1
  ).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")} ${String(
    now.getHours()
  ).padStart(2, "0")}:${String(now.getMinutes()).padStart(2, "0")}:${String(
    now.getSeconds()
  ).padStart(2, "0")}`;

  // 更新最后打包时间
  packageData.lastBuildTime = formattedDate;
};

updateVersion();

fs.writeFile(
  "./package.json",
  JSON.stringify(packageData, null, "\t"),
  (err) => {
    if (err) {
      console.log("写入版本失败", err);
    } else {
      console.log("写入版本成功 " + packageData.version);
    }
  }
);

三、修改packjson里面,scripts命令

"scripts": {
	"dev": "vue-cli-service serve",
	"build:prod": "node ./buildVersion.js && vue-cli-service build"
}

执行npm run build:prod 后自动更新versionlastBuildTime
在这里插入图片描述

四、在页面地方使用

在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐