const os = require('os'); const path = require('path'); const fs = require('fs'); /** * 解析微信开发者工具 CLI 路径。 * *

优先级: *

    *
  1. 环境变量 {@code WECHAT_DEVTOOLS_CLI}
  2. *
  3. macOS 默认安装路径
  4. *
  5. Windows 默认安装路径
  6. *
* 解析不到时返回 {@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, };