UPDATE: 优化
This commit is contained in:
@@ -4,7 +4,7 @@ const path = require('path');
|
||||
const { logger } = require('ee-core/log');
|
||||
const { getConfig } = require('ee-core/config');
|
||||
const { getMainWindow } = require('ee-core/electron');
|
||||
const { getBaseDir } = require('ee-core/ps');
|
||||
const ps = require('ee-core/ps');
|
||||
const { app } = require('electron');
|
||||
|
||||
// 动态获取 scripts 目录路径
|
||||
@@ -74,7 +74,10 @@ class Lifecycle {
|
||||
async ready() {
|
||||
logger.info('[lifecycle] ready');
|
||||
// 延迟加载 scripts
|
||||
loadScripts();
|
||||
if (ps.isProd()) {
|
||||
loadScripts();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -493,44 +496,55 @@ class Lifecycle {
|
||||
*/
|
||||
async windowReady() {
|
||||
logger.info('[lifecycle] window-ready');
|
||||
if (ps.isProd()) {
|
||||
// 创建日志窗口
|
||||
this.logWindowManager = new LogWindowManager();
|
||||
this.logWindowManager.createLogWindow();
|
||||
this.logWindowManager.addLog('system', '='.repeat(60));
|
||||
this.logWindowManager.addLog('system', 'NPQS9100 启动中...');
|
||||
this.logWindowManager.addLog('system', '='.repeat(60));
|
||||
|
||||
// 创建日志窗口
|
||||
this.logWindowManager = new LogWindowManager();
|
||||
this.logWindowManager.createLogWindow();
|
||||
this.logWindowManager.addLog('system', '='.repeat(60));
|
||||
this.logWindowManager.addLog('system', 'NPQS9100 启动中...');
|
||||
this.logWindowManager.addLog('system', '='.repeat(60));
|
||||
// 创建 Loading 窗口
|
||||
this.startupManager = new StartupManager();
|
||||
this.startupManager.createLoadingWindow();
|
||||
|
||||
// 创建 Loading 窗口
|
||||
this.startupManager = new StartupManager();
|
||||
this.startupManager.createLoadingWindow();
|
||||
// 开始启动流程
|
||||
try {
|
||||
await this.startApplication();
|
||||
} catch (error) {
|
||||
logger.error('[lifecycle] Failed to start application:', error);
|
||||
this.logWindowManager.addLog('error', `启动失败: ${error.message}`);
|
||||
this.logWindowManager.addLog('system', '请检查日志窗口了解详细错误信息');
|
||||
this.startupManager.showError(error.message || '启动失败,请查看日志');
|
||||
|
||||
// 显示错误5秒后关闭Loading窗口,但不关闭日志窗口
|
||||
setTimeout(() => {
|
||||
this.startupManager.closeLoadingWindow();
|
||||
|
||||
// 即使启动失败,也显示主窗口(但用户可能需要手动修复问题)
|
||||
const win = getMainWindow();
|
||||
win.show();
|
||||
win.focus();
|
||||
|
||||
// 添加主窗口关闭事件监听
|
||||
win.on('close', async () => {
|
||||
logger.info('[lifecycle] Main window closing (after error), cleaning up...');
|
||||
await this.cleanup();
|
||||
});
|
||||
|
||||
this.logWindowManager.addLog('warn', '应用已启动,但部分服务可能未正常运行');
|
||||
}, 5000);
|
||||
}
|
||||
} else {
|
||||
const win = getMainWindow();
|
||||
const {windowsOption} = getConfig();
|
||||
if (windowsOption.show == false) {
|
||||
win.once('ready-to-show', () => {
|
||||
win.show();
|
||||
win.focus();
|
||||
})
|
||||
}
|
||||
|
||||
// 开始启动流程
|
||||
try {
|
||||
await this.startApplication();
|
||||
} catch (error) {
|
||||
logger.error('[lifecycle] Failed to start application:', error);
|
||||
this.logWindowManager.addLog('error', `启动失败: ${error.message}`);
|
||||
this.logWindowManager.addLog('system', '请检查日志窗口了解详细错误信息');
|
||||
this.startupManager.showError(error.message || '启动失败,请查看日志');
|
||||
|
||||
// 显示错误5秒后关闭Loading窗口,但不关闭日志窗口
|
||||
setTimeout(() => {
|
||||
this.startupManager.closeLoadingWindow();
|
||||
|
||||
// 即使启动失败,也显示主窗口(但用户可能需要手动修复问题)
|
||||
const win = getMainWindow();
|
||||
win.show();
|
||||
win.focus();
|
||||
|
||||
// 添加主窗口关闭事件监听
|
||||
win.on('close', async () => {
|
||||
logger.info('[lifecycle] Main window closing (after error), cleaning up...');
|
||||
await this.cleanup();
|
||||
});
|
||||
|
||||
this.logWindowManager.addLog('warn', '应用已启动,但部分服务可能未正常运行');
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
// 主窗口初始化但不显示,等待启动流程完成后再显示
|
||||
@@ -542,7 +556,10 @@ class Lifecycle {
|
||||
*/
|
||||
async beforeClose() {
|
||||
logger.info('[lifecycle] before-close hook triggered');
|
||||
await this.cleanup();
|
||||
if (ps.isProd()) {
|
||||
await this.cleanup();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Lifecycle.toString = () => '[class Lifecycle]';
|
||||
|
||||
Reference in New Issue
Block a user