- 添加项目图标文件(app-icon.png、各平台图标) - 配置开发环境文件(.env、.nvmrc、.npmrc) - 添加静态资源文件(背景图片、字体、音频) - 初始化Tauri后端结构(build.rs、main.rs、模块文件) - 配置前端项目结构(TypeScript、Vue组件、样式) - 添加Node.js API服务基础结构 - 配置构建和开发工具(vite、prettier、gitignore)
57 lines
2.1 KiB
TypeScript
57 lines
2.1 KiB
TypeScript
import fs from 'fs';
|
||
import path from 'path';
|
||
import { fileURLToPath } from 'url';
|
||
|
||
// 获取项目根目录和 src-tauri 目录路径
|
||
const __filename = fileURLToPath(import.meta.url);
|
||
const __dirname = path.dirname(__filename);
|
||
const projectRoot = path.join(__dirname, '..', '..');
|
||
const tauriConfigPath = path.join(projectRoot, 'src-tauri', 'tauri.conf.json');
|
||
const packageJsonPath = path.join(projectRoot, 'package.json');
|
||
|
||
try {
|
||
// 读取 tauri.conf.json
|
||
const tauriConfigRaw: string = fs.readFileSync(tauriConfigPath, 'utf8');
|
||
const tauriConfig: { version: string } = JSON.parse(tauriConfigRaw);
|
||
const tauriVersion: string = tauriConfig.version;
|
||
|
||
console.log(`从 tauri.conf.json 读取的版本号: ${tauriVersion}`);
|
||
|
||
// 计算新的版本号(tauri版本号尾号加1)
|
||
const newPackageVersion: string = incrementVersion(tauriVersion);
|
||
|
||
// 读取 package.json
|
||
const packageJsonRaw: string = fs.readFileSync(packageJsonPath, 'utf8');
|
||
const packageJson: { version: string } = JSON.parse(packageJsonRaw);
|
||
// 更新 package.json 中的版本号
|
||
packageJson.version = newPackageVersion;
|
||
tauriConfig.version = newPackageVersion;
|
||
|
||
// 写入更新后的 package.json
|
||
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf8');
|
||
fs.writeFileSync(tauriConfigPath, JSON.stringify(tauriConfig, null, 2), 'utf8');
|
||
|
||
console.log(`已更新 package.json 和 tauri.conf.json 的版本号为: ${newPackageVersion}`);
|
||
} catch (error: any) {
|
||
console.error('更新版本号时发生错误:', error);
|
||
process.exit(1);
|
||
}
|
||
|
||
/**
|
||
* 将版本号的最后一个数字部分加1
|
||
* @param version - 原始版本号,如 "1.0.10"
|
||
* @returns 更新后的版本号,如 "1.0.11"
|
||
*/
|
||
function incrementVersion(version: string): string {
|
||
const parts: string[] = version.split('.');
|
||
if (parts.length > 0) {
|
||
const lastPartIndex = parts.length - 1;
|
||
const lastPart = Number(parts[lastPartIndex]);
|
||
if (!isNaN(lastPart)) {
|
||
parts[lastPartIndex] = (lastPart + 1).toString();
|
||
return parts.join('.');
|
||
}
|
||
}
|
||
return version; // 如果无法解析版本号,则返回原版本号
|
||
}
|