no message

This commit is contained in:
kuaifan 2025-05-28 07:23:20 +08:00
parent c7ea7b057c
commit 4aa865a60f
2 changed files with 18 additions and 17 deletions

33
electron/build.js vendored
View File

@ -188,44 +188,44 @@ async function detectAndDownloadUpdater() {
async function downloadAndExtractDrawio(drawioDestDir) { async function downloadAndExtractDrawio(drawioDestDir) {
const tempDir = path.resolve(__dirname, ".temp"); const tempDir = path.resolve(__dirname, ".temp");
const tarFilePath = path.join(tempDir, "drawio-latest.tar.gz"); const tarFilePath = path.join(tempDir, "drawio-latest.tar.gz");
try { try {
// 创建临时目录 // 创建临时目录
if (!fs.existsSync(tempDir)) { if (!fs.existsSync(tempDir)) {
fs.mkdirSync(tempDir, { recursive: true }); fs.mkdirSync(tempDir, { recursive: true });
} }
const spinner = ora('下载最新的Drawio文件...').start(); const spinner = ora('下载最新的Drawio文件...').start();
// 1. 下载tar.gz文件 // 1. 下载tar.gz文件
const response = await axios({ const response = await axios({
url: 'https://appstore.dootask.com/api/v1/download/drawio/latest', url: 'https://appstore.dootask.com/api/v1/download/drawio/latest',
method: 'GET', method: 'GET',
responseType: 'stream' responseType: 'stream'
}); });
const writer = fs.createWriteStream(tarFilePath); const writer = fs.createWriteStream(tarFilePath);
response.data.pipe(writer); response.data.pipe(writer);
await new Promise((resolve, reject) => { await new Promise((resolve, reject) => {
writer.on('finish', resolve); writer.on('finish', resolve);
writer.on('error', reject); writer.on('error', reject);
}); });
spinner.text = '解压Drawio文件...'; spinner.text = '解压Drawio文件...';
// 2. 解压tar.gz文件到临时目录 // 2. 解压tar.gz文件到临时目录
const extractDir = path.join(tempDir, "extracted"); const extractDir = path.join(tempDir, "extracted");
if (fs.existsSync(extractDir)) { if (fs.existsSync(extractDir)) {
fse.removeSync(extractDir); fse.removeSync(extractDir);
} }
fs.mkdirSync(extractDir, { recursive: true }); fs.mkdirSync(extractDir, { recursive: true });
await tar.x({ await tar.x({
file: tarFilePath, file: tarFilePath,
cwd: extractDir cwd: extractDir
}); });
// 3. 查找符合版本号格式的文件夹 // 3. 查找符合版本号格式的文件夹
const files = fs.readdirSync(extractDir); const files = fs.readdirSync(extractDir);
const versionRegex = /^v?\d+(\.\d+){1,2}$/; const versionRegex = /^v?\d+(\.\d+){1,2}$/;
@ -233,27 +233,27 @@ async function downloadAndExtractDrawio(drawioDestDir) {
const filePath = path.join(extractDir, file); const filePath = path.join(extractDir, file);
return fs.lstatSync(filePath).isDirectory() && versionRegex.test(file); return fs.lstatSync(filePath).isDirectory() && versionRegex.test(file);
}); });
if (!versionDir) { if (!versionDir) {
throw new Error('未找到符合版本号格式的文件夹'); throw new Error('未找到符合版本号格式的文件夹');
} }
// 4. 查找webapp文件夹 // 4. 查找webapp文件夹
const versionPath = path.join(extractDir, versionDir); const versionPath = path.join(extractDir, versionDir);
const webappPath = path.join(versionPath, 'webapp'); const webappPath = path.join(versionPath, 'webapp');
if (!fs.existsSync(webappPath)) { if (!fs.existsSync(webappPath)) {
throw new Error('未找到webapp文件夹'); throw new Error('未找到webapp文件夹');
} }
// 5. 复制webapp文件夹内容到目标目录 // 5. 复制webapp文件夹内容到目标目录
fse.copySync(webappPath, drawioDestDir); fse.copySync(webappPath, drawioDestDir);
spinner.succeed('Drawio文件下载并解压完成'); spinner.succeed('Drawio文件下载并解压完成');
// 清理临时文件 // 清理临时文件
fse.removeSync(tempDir); fse.removeSync(tempDir);
} catch (error) { } catch (error) {
console.warn('下载Drawio失败使用默认版本:', error.message); console.warn('下载Drawio失败使用默认版本:', error.message);
// 清理临时文件 // 清理临时文件
@ -559,6 +559,7 @@ async function startBuild(data) {
origin: "./", origin: "./",
homeUrl: utils.formatUrl(data.url), homeUrl: utils.formatUrl(data.url),
apiUrl: utils.formatUrl(data.url) + "api/", apiUrl: utils.formatUrl(data.url) + "api/",
routeMode: "hash",
} }
// information // information
if (data.id === 'app') { if (data.id === 'app') {

View File

@ -77,7 +77,7 @@ VueRouter.prototype.push = function push(location) {
} }
// 路由方式 // 路由方式
const routeMode = isSoftware && !/https?:/i.test(window.location.protocol) ? 'hash' : 'history'; const routeMode = (window && window.systemInfo && window.systemInfo.routeMode === 'hash') ? 'hash' : 'history';
const router = new VueRouter({mode: routeMode, routes}); const router = new VueRouter({mode: routeMode, routes});
// 进度条配置 // 进度条配置