|
@@ -314,11 +314,32 @@ parentServer.listen(port, () => {
|
|
|
console.log('========================================');
|
|
console.log('========================================');
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
-// 处理服务器关闭事件
|
|
|
|
|
-process.on('SIGINT', () => {
|
|
|
|
|
|
|
+// 统一的服务器关闭处理函数
|
|
|
|
|
+const shutdownServer = async () => {
|
|
|
console.log('正在关闭服务器...');
|
|
console.log('正在关闭服务器...');
|
|
|
- parentServer.close(() => {
|
|
|
|
|
- console.log('服务器已关闭');
|
|
|
|
|
|
|
+
|
|
|
|
|
+ // 1. 先关闭 Vite 开发服务器(包括 HMR 服务)
|
|
|
|
|
+ if (!isProduction && vite) {
|
|
|
|
|
+ console.log('正在关闭 Vite 开发服务器(包括 HMR 服务)...');
|
|
|
|
|
+ try {
|
|
|
|
|
+ await vite.close(); // 关闭 Vite 实例,会自动终止 HMR 服务(8081 端口)
|
|
|
|
|
+ console.log('Vite 开发服务器已关闭');
|
|
|
|
|
+ } catch (err) {
|
|
|
|
|
+ console.error('关闭 Vite 服务器时出错:', err);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 2. 关闭主服务器
|
|
|
|
|
+ parentServer.close((err) => {
|
|
|
|
|
+ if (err) {
|
|
|
|
|
+ console.error('关闭主服务器时出错:', err);
|
|
|
|
|
+ process.exit(1);
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log('主服务器已关闭');
|
|
|
process.exit(0);
|
|
process.exit(0);
|
|
|
});
|
|
});
|
|
|
-});
|
|
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+// 处理进程终止信号(包括 Ctrl+C)
|
|
|
|
|
+process.on('SIGINT', shutdownServer); // 处理 Ctrl+C
|
|
|
|
|
+process.on('SIGTERM', shutdownServer); // 处理 kill 命令
|