79 lines
2.1 KiB
JavaScript
79 lines
2.1 KiB
JavaScript
#!/usr/bin/env node
|
||
/**
|
||
* Electron开发调试启动脚本
|
||
* 用于在renderer目录下直接启动electron开发环境
|
||
*/
|
||
|
||
const { spawn } = require('child_process');
|
||
const path = require('path');
|
||
const fs = require('fs');
|
||
|
||
// 检查main.js是否存在
|
||
const mainPath = path.join(__dirname, '../main/main.js');
|
||
if (!fs.existsSync(mainPath)) {
|
||
console.error('❌ main.js文件不存在:', mainPath);
|
||
console.log('请确保main进程文件存在于 ../main/main.js');
|
||
process.exit(1);
|
||
}
|
||
|
||
// 检查preload.js是否存在
|
||
const preloadPath = path.join(__dirname, '../main/preload.js');
|
||
if (!fs.existsSync(preloadPath)) {
|
||
console.error('❌ preload.js文件不存在:', preloadPath);
|
||
console.log('请确保preload文件存在于 ../main/preload.js');
|
||
process.exit(1);
|
||
}
|
||
|
||
console.log('🚀 启动Electron开发环境...');
|
||
console.log('📁 Main进程文件:', mainPath);
|
||
console.log('📁 Preload文件:', preloadPath);
|
||
|
||
// 设置环境变量
|
||
process.env.NODE_ENV = 'development';
|
||
process.env.ELECTRON_IS_DEV = '1';
|
||
|
||
// 启动Vite开发服务器
|
||
console.log('\n🔧 启动Vite开发服务器...');
|
||
const viteProcess = spawn('npm', ['run', 'dev'], {
|
||
stdio: 'inherit',
|
||
shell: true,
|
||
cwd: __dirname
|
||
});
|
||
|
||
// 等待Vite服务器启动后启动Electron
|
||
setTimeout(() => {
|
||
console.log('\n⚡ 启动Electron应用...');
|
||
const electronProcess = spawn('npx', ['electron', mainPath], {
|
||
stdio: 'inherit',
|
||
shell: true,
|
||
cwd: __dirname
|
||
});
|
||
|
||
// 处理Electron进程退出
|
||
electronProcess.on('close', (code) => {
|
||
console.log(`\n🔚 Electron进程退出,代码: ${code}`);
|
||
viteProcess.kill();
|
||
process.exit(code);
|
||
});
|
||
|
||
// 处理Vite进程退出
|
||
viteProcess.on('close', (code) => {
|
||
console.log(`\n🔚 Vite进程退出,代码: ${code}`);
|
||
electronProcess.kill();
|
||
process.exit(code);
|
||
});
|
||
|
||
}, 3000); // 等待3秒让Vite服务器启动
|
||
|
||
// 处理进程信号
|
||
process.on('SIGINT', () => {
|
||
console.log('\n🛑 收到中断信号,正在关闭...');
|
||
viteProcess.kill();
|
||
process.exit(0);
|
||
});
|
||
|
||
process.on('SIGTERM', () => {
|
||
console.log('\n🛑 收到终止信号,正在关闭...');
|
||
viteProcess.kill();
|
||
process.exit(0);
|
||
}); |