将电子渲染器添加到Webpack中时,“需求未定义”

时间:2019-03-19 04:49:45

标签: javascript webpack electron

我正在开发一个电子应用程序。一切都很好,直到我想使用渲染器中的IPC调用某些本机功能。我知道将以下行添加到Webpack配置中将使我能够在渲染器一侧导入电子。

module.exports = {
    // ...
    target: 'electron-renderer',
}

添加此行时出现以下错误

Uncaught ReferenceError: require is not defined

违规行是

module.exports = require("querystring");

这很有道理,因为浏览器无法理解“要求”。

请注意,如果没有electron-renderer目标,该应用程序将运行良好,但我不能做类似的事情

import {ipcRenderer} from 'electron';

有什么想法我可能做错了吗?谢谢!

2 个答案:

答案 0 :(得分:7)

也遇到过这个问题,新答案:

mainWindow = new electron.BrowserWindow({
    width: width,
    height: height,
    webPreferences: {
        nodeIntegration: true,
        contextIsolation: false
    }
});

答案 1 :(得分:4)

最近才遇到这个问题。要注意的一件事是确保在创建渲染器窗口时将nodeIntegration设置为true。

mainWindow = new electron.BrowserWindow({
    width: width,
    height: height,
    webPreferences: {
        nodeIntegration: true
    }
});