const os = require('os');
const path = require('path');
const fs = require('fs');
/**
* 解析微信开发者工具 CLI 路径。
*
*
优先级:
*
* - 环境变量 {@code WECHAT_DEVTOOLS_CLI}
* - macOS 默认安装路径
* - Windows 默认安装路径
*
* 解析不到时返回 {@code null},由调用方决定是抛出错误还是降级处理。
*/
function resolveWechatDevtoolsCli() {
const envPath = process.env.WECHAT_DEVTOOLS_CLI;
if (envPath && fs.existsSync(envPath)) {
return envPath;
}
const platform = os.platform();
const candidates = [];
if (platform === 'darwin') {
candidates.push('/Applications/wechatwebdevtools.app/Contents/MacOS/cli');
candidates.push('/Applications/微信开发者工具.app/Contents/MacOS/cli');
} else if (platform === 'win32') {
candidates.push('C:\\Program Files (x86)\\Tencent\\微信web开发者工具\\cli.bat');
candidates.push('C:\\Program Files\\Tencent\\微信web开发者工具\\cli.bat');
candidates.push('D:\\wechat-dev-tools\\cli.bat');
}
for (const candidate of candidates) {
if (fs.existsSync(candidate)) {
return candidate;
}
}
return null;
}
module.exports = {
resolveWechatDevtoolsCli,
};