使webpack忽略某个导入

时间:2018-06-10 19:31:18

标签: javascript reactjs webpack electron

我正在尝试使用ElectronJSReactJS创建桌面应用。

渲染器进程使用webpack进行捆绑,因为我正在使用JSX。

当我尝试在渲染器进程中从电子导入任何内容(例如import electron from 'electron';const electron = require('electron');)时,当我尝试使用webpack(Web部件)构建它时,我会收到这两个错误,或者当我使用webpack-dev-server并在电子中打开localhost URL时:

https://pastebin.com/WdkCcPzm

请注意,我没有使用create-react-appbundle.js是webpack的输出,App.jsx是我正在尝试导入电子的文件,我要将电子导入到访问ipcRenderer变量,我没有尝试从渲染器进程(或主进程)导入fs

我找到的解决方案是通过将此行添加到我的index.js

来绕过webpack的包装
eval('window.Electron = require("electron")');

并通过变量Electron访问电子(大写字母E是因为vs代码将其识别为命名空间,即使未导入电子,因此我仍然可以获得代码完成)

但那真的很难看,我希望有另一个解决方案。

1 个答案:

答案 0 :(得分:2)

要为Electron应用程序的渲染器进程构建包,webpack提供了一个特殊的目标参数。

将此添加到您的webpack配置:

target: 'electron-renderer'

请参阅文档:https://webpack.js.org/configuration/target/