69 lines
2.0 KiB
JavaScript
69 lines
2.0 KiB
JavaScript
/**
|
||
* 直接测试 miniprogram-automator 的 launch 功能
|
||
* 使用 npx 缓存中已 patch 的版本
|
||
*
|
||
* 用法: node scripts/ops/test_automator_launch.js
|
||
*/
|
||
const path = require('path');
|
||
const fs = require('fs');
|
||
|
||
// 找到 npx 缓存中的 miniprogram-automator
|
||
const npxCacheBase = path.join(process.env.LOCALAPPDATA, 'npm-cache', '_npx');
|
||
let automatorPath = null;
|
||
|
||
for (const dir of fs.readdirSync(npxCacheBase)) {
|
||
const candidate = path.join(npxCacheBase, dir, 'node_modules', 'miniprogram-automator');
|
||
if (fs.existsSync(candidate)) {
|
||
automatorPath = candidate;
|
||
break;
|
||
}
|
||
}
|
||
|
||
if (!automatorPath) {
|
||
console.error('未找到 miniprogram-automator,请先运行 patch 脚本');
|
||
process.exit(1);
|
||
}
|
||
|
||
console.log(`使用 automator: ${automatorPath}`);
|
||
|
||
// 验证 patch 状态
|
||
const launcherContent = fs.readFileSync(path.join(automatorPath, 'out', 'Launcher.js'), 'utf8');
|
||
if (launcherContent.includes('shell:!0') || launcherContent.includes('shell: true')) {
|
||
console.log('✅ Launcher.js 已 patch (shell:true)');
|
||
} else {
|
||
console.log('❌ Launcher.js 未 patch,先运行 patch_automator_spawn.js');
|
||
process.exit(1);
|
||
}
|
||
|
||
const automator = require(automatorPath);
|
||
|
||
const PROJECT_PATH = 'C:\\NeoZQYY\\apps\\miniprogram';
|
||
|
||
async function main() {
|
||
console.log(`\n尝试 launch 连接...`);
|
||
console.log(`项目路径: ${PROJECT_PATH}`);
|
||
|
||
try {
|
||
const miniProgram = await automator.launch({
|
||
projectPath: PROJECT_PATH,
|
||
});
|
||
console.log('✅ 连接成功!');
|
||
|
||
// 获取系统信息
|
||
const systemInfo = await miniProgram.systemInfo();
|
||
console.log('系统信息:', JSON.stringify(systemInfo, null, 2));
|
||
|
||
// 获取当前页面
|
||
const page = await miniProgram.currentPage();
|
||
console.log('当前页面:', page ? page.path : '无');
|
||
|
||
await miniProgram.close();
|
||
console.log('已断开连接');
|
||
} catch (err) {
|
||
console.error('❌ 连接失败:', err.message);
|
||
console.error('错误详情:', err.stack);
|
||
}
|
||
}
|
||
|
||
main();
|