為了在 electron 渲染進程中引入BrowserWindow,使用了這樣一個語句:
const BrowserWindow = require(“electron”).remote.BrowserWindow
運行時會報錯:Cannot read properties of undefined (reading ‘BrowserWindow’)
出錯原因
這是由于electron 版本所造成的問題。由于用的是目前的最新版本@v19.0.8, 而remote在electron12中就已經(jīng)廢棄了remote模塊,如果需要使用,則應(yīng)自己安裝remote包。
解決方案
步驟1. 在項目根目錄下安裝@electron/remote包:
npm install @electron/remote –save
步驟2. 在主進程中,設(shè)置webPreferences選項:
webPreferences: { nodeIntegration: true, contextIsolation: false, enableRemoteModule: true, // 使用remote模塊},
步驟3. 在主進程中進行初始化:
require(“@electron/remote/main”).initialize();require(“@electron/remote/main”).enable(mainWindow.webContents);
步驟4. 在渲染進程中引入BrowservWindow:
const BrowserWindow = require(“@electron/remote”).BrowserWindow;