import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const rootDir = path.join(__dirname, '..'); // 1. 获取 package.json 的版本号 const pkgPath = path.join(rootDir, 'package.json'); const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf8')); const version = pkg.version; console.log(`[Version Sync] New version detected: v${version}`); // 2. 更新 src-tauri/tauri.conf.json const tauriConfPath = path.join(rootDir, 'src-tauri', 'tauri.conf.json'); if (fs.existsSync(tauriConfPath)) { const tauriConf = JSON.parse(fs.readFileSync(tauriConfPath, 'utf8')); tauriConf.version = version; fs.writeFileSync(tauriConfPath, JSON.stringify(tauriConf, null, 2) + '\n'); console.log(`[Version Sync] Updated src-tauri/tauri.conf.json`); } // 3. 更新 src-tauri/Cargo.toml const cargoTomlPath = path.join(rootDir, 'src-tauri', 'Cargo.toml'); if (fs.existsSync(cargoTomlPath)) { let cargoToml = fs.readFileSync(cargoTomlPath, 'utf8'); // 匹配 [package] 下的首个 version = "..." cargoToml = cargoToml.replace(/^version\s*=\s*".*"/m, `version = "${version}"`); fs.writeFileSync(cargoTomlPath, cargoToml); console.log(`[Version Sync] Updated src-tauri/Cargo.toml`); } console.log('[Version Sync] All versions are now synchronized.');