問題描述
這是在渲染進程中:
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
}))
})
我無法在渲染器進程中打開新窗口,出現以下錯誤.
**未捕獲的類型錯誤:無法按原樣解構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
設置為 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
.需要的是節點 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
這篇關于Electron JS - 無法解構'require(...).remote'的屬性'BrowserWindow',因為它未定義的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!