feat(index): 首页标题连击5次显示构建版本信息\nfix(scripts): explorer使用spawn避免GUI进程阻塞\nfix(index): version.json运行时读取,不依赖构建时require
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
<image :src="$util.img(siteInfo.logo_square)" mode="aspectFill"></image>
|
<image :src="$util.img(siteInfo.logo_square)" mode="aspectFill"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="info-box" :style="{ color: '#ffffff' }">
|
<view class="info-box" :style="{ color: '#ffffff' }">
|
||||||
<text class="font-size-base">{{ siteInfo.site_name }}</text>
|
<text class="font-size-base" @tap="onTitleTap">{{ siteInfo.site_name }}</text>
|
||||||
<text>{{ followOfficialAccount.welcomeMsg }}</text>
|
<text>{{ followOfficialAccount.welcomeMsg }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
@@ -91,6 +91,69 @@ export default {
|
|||||||
|
|
||||||
// 阻止事件继续传播
|
// 阻止事件继续传播
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 标题连击 5 次显示构建版本信息(供测试人员使用)
|
||||||
|
*/
|
||||||
|
onTitleTap() {
|
||||||
|
this._titleTapCount = (this._titleTapCount || 0) + 1;
|
||||||
|
if (this._titleTapTimer) {
|
||||||
|
clearTimeout(this._titleTapTimer);
|
||||||
|
}
|
||||||
|
if (this._titleTapCount >= 5) {
|
||||||
|
this._titleTapCount = 0;
|
||||||
|
this._showVersionInfo();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 2 秒内未达到 5 次则重置计数
|
||||||
|
this._titleTapTimer = setTimeout(() => {
|
||||||
|
this._titleTapCount = 0;
|
||||||
|
}, 2000);
|
||||||
|
},
|
||||||
|
_showVersionInfo() {
|
||||||
|
// #ifdef MP-WEIXIN
|
||||||
|
try {
|
||||||
|
const fs = uni.getFileSystemManager();
|
||||||
|
fs.readFile({
|
||||||
|
filePath: 'version.json',
|
||||||
|
encoding: 'utf-8',
|
||||||
|
success: (res) => {
|
||||||
|
try {
|
||||||
|
const v = JSON.parse(res.data);
|
||||||
|
if (v && v.commitId) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '构建版本信息',
|
||||||
|
content: `提交 ID: ${v.commitId}\n构建时间: ${v.buildTime}`,
|
||||||
|
showCancel: false
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
|
uni.showModal({ title: '构建版本信息', content: '版本信息不可用', showCancel: false });
|
||||||
|
},
|
||||||
|
fail: () => this._showVersionFromGlobal()
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
this._showVersionFromGlobal();
|
||||||
|
}
|
||||||
|
// #endif
|
||||||
|
// #ifndef MP-WEIXIN
|
||||||
|
this._showVersionFromGlobal();
|
||||||
|
// #endif
|
||||||
|
},
|
||||||
|
_showVersionFromGlobal() {
|
||||||
|
try {
|
||||||
|
const v = typeof __app_version !== 'undefined' ? __app_version : null;
|
||||||
|
if (v && v.commitId) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '构建版本信息',
|
||||||
|
content: `提交 ID: ${v.commitId}\n构建时间: ${v.buildTime}`,
|
||||||
|
showCancel: false
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} catch (e) {}
|
||||||
|
uni.showModal({ title: '构建版本信息', content: '版本信息不可用', showCancel: false });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -89,7 +89,9 @@ async function commonPatch(mode = 'production') {
|
|||||||
// 4) 处理 vendor.js:在开头追加 require 语句(如果还没有的话)
|
// 4) 处理 vendor.js:在开头追加 require 语句(如果还没有的话)
|
||||||
const vendorExists = await exists(vendorPath);
|
const vendorExists = await exists(vendorPath);
|
||||||
if (!vendorExists) {
|
if (!vendorExists) {
|
||||||
console.warn(`目标 vendor.js 不存在,跳过追加 require。路径: ${vendorPath}`);
|
console.warn(`⚠ 目标 vendor.js 不存在,跳过追加 require。路径: ${vendorPath}`);
|
||||||
|
console.warn(' → 请先执行 HBuilder 构建(uniapp 构建),产生 vendor.js 后再运行此脚本。');
|
||||||
|
console.warn(' → version.json 已生成,可在首页连击 5 次标题查看版本信息。');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -55,10 +55,13 @@ async function openDirectoryWindows(directoryPath) {
|
|||||||
|
|
||||||
console.log(`📁 在文件资源管理器中打开: ${normalizedPath}`);
|
console.log(`📁 在文件资源管理器中打开: ${normalizedPath}`);
|
||||||
|
|
||||||
// 方法1: 使用 explorer 命令
|
// 方法1: 使用 explorer 命令(spawn + detached,不等待 GUI 进程)
|
||||||
try {
|
try {
|
||||||
const command = `explorer "${normalizedPath}"`;
|
const child = spawn('explorer', [normalizedPath], {
|
||||||
await execAsync(command);
|
stdio: 'ignore',
|
||||||
|
detached: true
|
||||||
|
});
|
||||||
|
child.unref();
|
||||||
console.log('✅ 已启动文件资源管理器');
|
console.log('✅ 已启动文件资源管理器');
|
||||||
return true;
|
return true;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user