- 响应式项目首页 (Landing, 含 R2 APK 下载) + 路由 /home 调整 - OTA 升级: tauri-plugin-hotswap (lib.rs/main.rs 拆分, 客户端热替换) - OTA 服务端 (check/bundle/manifest-web) + build-ota/genkey/upload 脚本 - 密钥/凭据统一存配置中心 (signing + ota + cloudflare 分组) - Android CI (android-* 分支) + OTA CI (手动触发), 产物上传 R2 - 修复 tsc/构建阻塞问题
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { defineConfig } from "vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import { readFileSync } from "node:fs";
|
|
|
|
const host = process.env.TAURI_DEV_HOST;
|
|
|
|
function buildId() {
|
|
// YYYYMMDD.HHmmss: 每次构建生成新的 BUILD_ID, 用于 OTA/web 升级比对
|
|
const d = new Date();
|
|
const pad = (n: number) => String(n).padStart(2, "0");
|
|
return (
|
|
[d.getFullYear(), pad(d.getMonth() + 1), pad(d.getDate())].join("") +
|
|
"." +
|
|
[pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join("")
|
|
);
|
|
}
|
|
|
|
export default defineConfig(async () => {
|
|
const pkg = JSON.parse(readFileSync(new URL("./package.json", import.meta.url), "utf8"));
|
|
|
|
return {
|
|
plugins: [react()],
|
|
clearScreen: false,
|
|
server: {
|
|
port: 1420,
|
|
strictPort: true,
|
|
host: host || false,
|
|
hmr: host ? { protocol: "ws", host, port: 1421 } : undefined,
|
|
watch: {
|
|
ignored: ["**/src-tauri/**"],
|
|
},
|
|
},
|
|
// 编译期常量: 版本 + 构建号, 供 src/version.ts 使用
|
|
define: {
|
|
__BUILD_ID__: JSON.stringify(buildId()),
|
|
__APP_VERSION__: JSON.stringify(pkg.version || "0.0.0"),
|
|
},
|
|
};
|
|
}); |