前端打包时自动更新版本号

updateVersion.js

复制代码
// changeVersion.js
const fs = require("fs");

// 读取package.json并返回JSON对象(带异常处理)
const getPackageJson = () => {
	try {
		const data = fs.readFileSync("./package.json", "utf8");
		return JSON.parse(data);
	} catch (err) {
		console.error("读取package.json失败:", err);
		process.exit(1); // 读取失败时终止程序
	}
};

// 生成 年-月-日 HH:mm:ss 格式的时间字符串
const getFormattedVersion = () => {
	const now = new Date();
	// 手动获取各时间部分,确保补零(如1月→01,9分→09)
	const year = now.getFullYear(); // 4位年(如2025)
	const month = String(now.getMonth() + 1).padStart(2, "0"); // 月份从0开始,补零到2位
	const day = String(now.getDate()).padStart(2, "0"); // 日期补零到2位
	const hour = String(now.getHours()).padStart(2, "0"); // 小时补零到2位
	const minute = String(now.getMinutes()).padStart(2, "0"); // 分钟补零到2位
	const second = String(now.getSeconds()).padStart(2, "0"); // 秒补零到2位

	// 拼接成 年-月-日 HH:mm:ss 格式
	return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
};

// 主逻辑:更新版本号并写入文件
const updateVersion = () => {
	const packageData = getPackageJson();
	// 生成指定格式的cloneVersion
	packageData.cloneVersion = getFormattedVersion();

	// 写入文件(保留缩进,确保JSON格式美观)
	fs.writeFile(
		"./package.json",
		JSON.stringify(packageData, null, "\t"),
		(err) => {
			if (err) {
				console.error("版本号写入失败:", err);
			} else {
				console.log("版本号写入成功:", packageData.cloneVersion);
				// 示例输出:版本号写入成功:2025-12-30 10:45:30
			}
		}
	);
};

// 执行更新
updateVersion();

使用

复制代码
<template>
	<H2>{{ `打包时间:${currentVersion}` }}</H2>
</template>

<script>
import packageVersion from "../../../package.json";
export default {
	name: "",
	components: {},
	data() {
		return {
			currentVersion: packageVersion.cloneVersion || "",
		};
	},
	methods: {},
	watch: {},
};
</script>

在webpack打包命令前加入node updateVersion.js &&

复制代码
"scripts" : {
   "build": "node updateVersion.js && npm run command host=default "
}

就可以看是什么时候打的包了

相关推荐
胖虎12 小时前
UIKit实现一个渐变文字的UILabel(核心思想及实现过程)
前端·mask·渐变文字·ios渐变文字·渐变label
alphardex2 小时前
一个普通魔法师的 2025 年度总结
前端·年终总结
德莱厄斯2 小时前
AI 纪元 3 年,2025 论前端程序员自救
前端·ai编程·vibecoding
WX-bisheyuange2 小时前
基于Spring Boot的社团管理系统的设计与实现
前端·javascript·vue.js·毕业设计
橙某人2 小时前
LogicFlow 插件魔改实录:手把手教你重写动态分组(DynamicGroup)🛠️
前端·javascript·vue.js
阿蔹3 小时前
UI测试自动化-Web-Python-Selenium-2-元素操作、浏览器操作
前端·python·selenium·ui·自动化
谎言西西里3 小时前
React hooks 之 一篇文章掌握 useState 和 useEffect 的核心机制
前端·react.js
Apifox.3 小时前
Apifox 12 月更新| AI 生成用例同步生成测试数据、接口文档完整性检测、设计 SSE 流式接口、从 Git 仓库导入数据
前端·人工智能·git·ai·postman·团队开发
bjzhang753 小时前
使用 HTML + JavaScript 实现滑动验证码
前端·javascript·html