在 Electron + React + Webpack 设置中找不到模块“电子”

Posted

技术标签:

【中文标题】在 Electron + React + Webpack 设置中找不到模块“电子”【英文标题】:Cannot find module 'electron' in Electron + React + Webpack setup 【发布时间】:2016-08-13 15:19:31 【问题描述】:

我正在使用 React + Electron + Webpack 创建应用程序,但在尝试使用 Electron 模块时,我收到错误消息“找不到模块 'electron'。

我的一个 React 组件中有以下示例代码:-

const shell = window.require("electron").shell;
shell.showItemInFolder("C:\\Logs");

我提到了 SO 中提出的许多与 webpack 和 Electron 相关的问题,但似乎没有一个解决方案适合我。

当我尝试以下代码时:-

require('electron-prebuilt')

它返回给我电子可执行文件的路径。

【问题讨论】:

这可能有助于***.com/questions/34427446/… 【参考方案1】:

webpack 的配置中有一个target 选项,需要设置为electron。像这样:

var config = 
    target: 'electron',
    entry: __dirname + '/main.js',
    output: 
        path: __dirname + '/dist/',
        filename: 'bundle.js'
    ,
    ...
;

module.exports = config;

【讨论】:

【参考方案2】:

在 webpack 中,你可以设置开发目标。默认情况下,目标将设置为 web。所以需要在渲染进程中设置目标为electron-renderer,在主进程中设置为electron-main

//In the renderer configuration
module.exports = 
 target: 'electron-renderer',
 //... other configurations


//In the main configuration
module.exports = 
 target: 'electron-main',
 //... other configurations

electronatom 是 electron-main 的别名

【讨论】:

以上是关于在 Electron + React + Webpack 设置中找不到模块“电子”的主要内容,如果未能解决你的问题,请参考以下文章

在 Electron + React 中使用静态资源

Typescript、React、Electron:不能在模块外使用 import 语句

在 Electron 中提供静态文件(React 应用程序)

Electron 中的路由 + 创建 React 应用程序

不能在模块 Electron React Typescript 之外使用 import 语句

Electron 全局变量不会在 React 页面上的路由/URL 更改之间持续存在