46 lines
1.3 KiB
JavaScript
46 lines
1.3 KiB
JavaScript
import { spawn } from 'node:child_process';
|
||
import path from 'node:path';
|
||
|
||
export const main = async () => {
|
||
// Chrome 路径和配置
|
||
const executablePath = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe';
|
||
// 使用独立的用户数据目录,避免与 Chrome 冲突
|
||
const userDataDir = path.join(process.cwd(), 'browser-context');
|
||
const debugPort = 9223;
|
||
|
||
console.log('启动 Chrome...');
|
||
console.log(`端口: ${debugPort}`);
|
||
console.log(`用户数据目录: ${userDataDir}`);
|
||
// console.log('注意:需要手动登录账号和安装插件');
|
||
|
||
// 启动 Chrome(带远程调试端口)
|
||
const chromeProcess = spawn(
|
||
executablePath,
|
||
[
|
||
`--remote-debugging-port=${debugPort}`,
|
||
`--user-data-dir=${userDataDir}`,
|
||
// '--kiosk', // 全屏模式,无修改边框
|
||
],
|
||
{
|
||
windowsHide: true, // 隐藏 CMD 窗口
|
||
detached: false,
|
||
stdio: ['ignore', 'ignore', 'ignore'],
|
||
},
|
||
);
|
||
|
||
chromeProcess.on('error', (err) => {
|
||
console.error('Chrome 启动失败:', err);
|
||
// 需要重新启动
|
||
});
|
||
|
||
chromeProcess.on('exit', (code, signal) => {
|
||
console.log(`Chrome 进程退出,代码: ${code}, 信号: ${signal}`);
|
||
if (code === 0) {
|
||
// 重启
|
||
main();
|
||
}
|
||
});
|
||
};
|
||
|
||
main();
|