From 7d0160c8fb0c65268d93692646a8fc6f835e1da7 Mon Sep 17 00:00:00 2001 From: pengx17 Date: Thu, 26 Dec 2024 15:37:56 +0000 Subject: [PATCH] feat(electron): enable vscode debugger for electron (#9333) --- packages/frontend/apps/electron/scripts/dev.ts | 7 ++++++- .../apps/electron/src/main/windows-manager/onboarding.ts | 5 +++++ .../core/src/modules/desktop-api/service/desktop-api.ts | 7 ++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/packages/frontend/apps/electron/scripts/dev.ts b/packages/frontend/apps/electron/scripts/dev.ts index 718f22413579c..b1e6be6c7296e 100644 --- a/packages/frontend/apps/electron/scripts/dev.ts +++ b/packages/frontend/apps/electron/scripts/dev.ts @@ -34,7 +34,12 @@ function spawnOrReloadElectron() { const ext = process.platform === 'win32' ? '.cmd' : ''; const exe = resolve(rootDir, 'node_modules', '.bin', `electron${ext}`); - delete process.env['NODE_OPTIONS']; + // remove import loader option + const NODE_OPTIONS = process.env.NODE_OPTIONS; + if (NODE_OPTIONS) { + process.env.NODE_OPTIONS = NODE_OPTIONS.replace(/--import=[^\s]*/, ''); + } + spawnProcess = spawn(exe, ['.'], { cwd: electronDir, env: process.env, diff --git a/packages/frontend/apps/electron/src/main/windows-manager/onboarding.ts b/packages/frontend/apps/electron/src/main/windows-manager/onboarding.ts index 206562cbd9be8..d340c17a39dd8 100644 --- a/packages/frontend/apps/electron/src/main/windows-manager/onboarding.ts +++ b/packages/frontend/apps/electron/src/main/windows-manager/onboarding.ts @@ -4,6 +4,7 @@ import type { Display } from 'electron'; import { BrowserWindow, screen } from 'electron'; import { isMacOS } from '../../shared/utils'; +import { isDev } from '../config'; import { onboardingViewUrl } from '../constants'; // import { getExposedMeta } from './exposed'; import { logger } from '../logger'; @@ -90,6 +91,10 @@ async function createOnboardingWindow(additionalArguments: string[]) { fullscreenAndCenter(browserWindow); }); + if (isDev) { + browserWindow.webContents.openDevTools(); + } + await browserWindow.loadURL(onboardingViewUrl); return browserWindow; diff --git a/packages/frontend/core/src/modules/desktop-api/service/desktop-api.ts b/packages/frontend/core/src/modules/desktop-api/service/desktop-api.ts index 9f2beb7783193..4020872aaef0d 100644 --- a/packages/frontend/core/src/modules/desktop-api/service/desktop-api.ts +++ b/packages/frontend/core/src/modules/desktop-api/service/desktop-api.ts @@ -88,6 +88,10 @@ export class DesktopApiService extends Service { } private setupCommonUIEvents() { + if (this.api.appInfo.windowName !== 'main') { + return; + } + const handleMaximized = (maximized: boolean | undefined) => { document.documentElement.dataset.maximized = String(maximized); }; @@ -102,12 +106,13 @@ export class DesktopApiService extends Service { .isFullScreen() .then(handleFullscreen) .catch(console.error); + this.api.events.ui.onMaximized(handleMaximized); this.api.events.ui.onFullScreen(handleFullscreen); const tabId = this.api.appInfo.viewId; - if (tabId && this.api.appInfo.windowName === 'main') { + if (tabId) { let isActive = false; const handleActiveTabChange = (active: boolean) => { isActive = active;