問題描述
這是在渲染進(jìn)程中:
const {BrowserWindow} = require('electron').remote
const path = require('path')
const url = require('url')
const newWindowButton = document.getElementById('new-window-btn');
newWindowButton.addEventListener('click',(e)=>{
let win3 = new BrowserWindow();
win3.loadURL(url.format({
pathname: path.join(__dirname,'index3.html'),
protocol: "file",
slashes: true
}))
})
我無法在渲染器進(jìn)程中打開新窗口,出現(xiàn)以下錯(cuò)誤.
**未捕獲的類型錯(cuò)誤:無法按原樣解構(gòu)require(...).remote"的屬性BrowserWindow"
**Uncaught TypeError: Cannot destructure property 'BrowserWindow' of 'require(...).remote' as it is
undefined.**
at Object.<anonymous> (D:ElectronTutehelloWorldindex1.js:4)
at Object.<anonymous> (D:ElectronTutehelloWorldindex1.js:21)
at Module._compile (internal/modules/cjs/loader.js:1145)
at Object.Module._extensions..js (internal/modules/cjs/loader.js`enter code here`:1166)
at Module.load (internal/modules/cjs/loader.js:981)
at Module._load (internal/modules/cjs/loader.js:881)
at Function.Module._load (electron/js2c/asar.js:769)
at Module.require (internal/modules/cjs/loader.js:1023)
at require (internal/modules/cjs/helpers.js:77)
at index1.html:13
推薦答案
mainWindow = new BrowserWindow({
width: 1280,
height: 960,
webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
},
});
我相信您正在使用新版本的 Electron.從 v9 版本開始,我們不允許在渲染器上使用 remote
,除非將 enableRemoteModule
設(shè)置為 true.
I believe you are using the new version of Electron. From v9 version, we are not allowed to use remote
on the renderer unless set the enableRemoteModule
as true.
另外,為了使用 require()
在渲染器上加載 node_moduels
,我們還需要啟用 nodeIntegration
.需要的是節(jié)點(diǎn) API 之一.
Plus in order to load node_moduels
on renderer by using require()
, we need to also enable the nodeIntegration
as well. As require is one of node APIs.
https://github.com/electron/electron/issues/21408
這篇關(guān)于Electron JS - 無法解構(gòu)'require(...).remote'的屬性'BrowserWindow',因?yàn)樗炊x的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!