我在使用 Electron 时遇到了麻烦。正如你看到的标题,当我加载远程模块时,它说它是未定义的。这是入口js的代码:
const electron = require('electron');
const { app, BrowserWindow, Tray, remote, ipcMain } = electron;
function initApp() { ... }
app.on('ready', () => {
initApp();
console.log(electron); // object, but no remote inside
console.log(electron.remote); // undefined
console.log(remote); // undefined
});
我试图在这里关注官方文档:http: //electron.atom.io/docs/api/remote/
和
const { remote } = electron;
const { BrowserWindow } = remote;
let win = new BrowserWindow({width: 800, height: 600}); // error! BrowserWindow is not a constructor blabla
...
remote.getCurrentWindow().focus();
我不知道我错过了什么。任何建议都会非常感激。
原文由 modernator 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新 2020 ,因为这个答案仍然出现在顶部。要在当前版本的 Electron 中工作的原始答案,您需要在主进程中创建窗口时设置
enableRemoteModule
。原答案:
remote
只需要在渲染进程中要求其他模块。在主流程中,您只需直接从require('electron')
获取模块。它看起来像在示例中完成了remote
不必要的添加。渲染过程:
主要工艺: