前端小版本自动更新

This commit is contained in:
2026-04-27 13:37:51 +08:00
parent 8ca34cabd1
commit c93cabe0eb
4 changed files with 46 additions and 3 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "ops_vue_js",
"version": "0.0.0",
"version": "1.0.1",
"private": true,
"type": "module",
"engines": {
@@ -1,6 +1,9 @@
<script setup>
import { useI18n } from 'vue-i18n'
const { t } = useI18n()
// 从 vite.config.js define 注入的全局常量
const version = __APP_VERSION__
</script>
<template>
@@ -13,7 +16,10 @@ const { t } = useI18n()
<span class="text-gray-300 dark:text-dk-muted">·</span>
<a href="https://github.com/wuwenfengmi1998" target="_blank" class="hover:text-gray-700 dark:hover:text-dk-text" rel="noopener">{{ t('footer.author_home') }}</a>
</div>
<div class="text-sm text-gray-400">{{ t('footer.copy') }}</div>
<div class="text-sm text-gray-400">
{{ t('footer.copy') }}
<span class="ml-2 text-gray-300">v{{ version }}</span>
</div>
</div>
</footer>
</template>
+23 -1
View File
@@ -1,12 +1,34 @@
import { fileURLToPath, URL } from "node:url";
import { readFileSync, writeFileSync } from "node:fs";
import { resolve, dirname } from "node:path";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueDevTools from "vite-plugin-vue-devtools";
import tailwindcss from "@tailwindcss/vite";
const __dirname = dirname(fileURLToPath(import.meta.url));
const packageJsonPath = resolve(__dirname, "package.json");
// 读取 package.json
let packageJson = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
// 每次 build 时自动递增 patch 版本
const isBuild = process.argv.includes("build");
if (isBuild) {
const parts = packageJson.version.split(".");
const patch = Math.max(0, parseInt(parts[2] || "0", 10));
parts[2] = String(patch + 1);
packageJson.version = parts.join(".");
writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + "\n", "utf-8");
console.log(`[bump] version → ${packageJson.version}`);
}
// https://vite.dev/config/
export default defineConfig({
define: {
// 全局可用 __APP_VERSION__,取自 package.json 的 version 字段
__APP_VERSION__: JSON.stringify(packageJson.version),
},
plugins: [vue(), vueDevTools(), tailwindcss()],
resolve: {
alias: {