vue打包更新packge.json版本号

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
在这里插入图片描述

四、在页面地方使用

在这里插入图片描述

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值