跨平台化:移除 AppleScript + 去 macOS 硬编码

- 删除浏览器交互的 AppleScript(osascript 控 Chrome/Safari 做截图/eval/刷新/打开),
  改由外部 playwright MCP 承担;保留走 Editor.Message 的跨平台编辑器操作
- openDevDir 打开命令按平台分支(mac=open / win=explorer / linux=xdg-open)
- execPath 解析弱化靠注册表/进程查询,删掉 /Applications macOS 硬编码兜底
- editor-control 去 macOS-only 假设,ps 进程查询按平台分支(win 用 wmic)
- build-cmd Cocos 安装路径按平台拼

Win 特定逻辑(wmic、CocosDashboard 安装路径)标 TODO[win-verify],待 Windows 实测补全。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
furao
2026-06-07 17:54:05 +08:00
parent 33b90dab22
commit bee9f89c98
6 changed files with 67 additions and 407 deletions
+15 -3
View File
@@ -41,15 +41,27 @@ function parseArgs(rest) {
return a;
}
// 解析 CocosCreator 可执行:--cocos 显式优先,否则 --version 拼标准安装路径(macOS
// 按平台拼 Cocos Creator 标准安装路径。Win/Linux 路径规律待目标平台实测,建议优先用 --cocos 显式。
function cocosStdPath(ver) {
if (process.platform === 'darwin') {
return `/Applications/Cocos/Creator/${ver}/CocosCreator.app/Contents/MacOS/CocosCreator`;
}
if (process.platform === 'win32') {
// TODO[win-verify]: Win 上 CocosDashboard 安装路径待实测确认(下面是常见默认,未验证)
return `C:\\ProgramData\\cocos\\editors\\Creator\\${ver}\\CocosCreator.exe`;
}
return ''; // linux 等:无标准约定,要求 --cocos 显式
}
// 解析 CocosCreator 可执行:--cocos 显式优先,否则 --version 拼标准安装路径
function resolveCocos(a) {
if (a.cocos) {
if (!fs.existsSync(a.cocos)) die(`--cocos 路径不存在: ${a.cocos}`);
return a.cocos;
}
if (a.version) {
const p = `/Applications/Cocos/Creator/${a.version}/CocosCreator.app/Contents/MacOS/CocosCreator`;
if (!fs.existsSync(p)) die(`版本 ${a.version} 不在标准路径: ${p}\n 用 --cocos <可执行绝对路径> 显式指定`);
const p = cocosStdPath(a.version);
if (!p || !fs.existsSync(p)) die(`版本 ${a.version} 不在标准安装路径${p ? ': ' + p : ''}\n 用 --cocos <可执行绝对路径> 显式指定`);
return p;
}
die('需指定 CocosCreator 可执行:--cocos <path> 或 --version <如 3.8.8>');