webPreferences
:
{
nodeIntegration
:
true
,
enableRemoteModule
:
true
,
contextIsolation
:
false
,
主要是设置web属性:
nodeIntegration: true,
enableRemoteModule: true,
contextIsolation: false,
简单来说,Electron就是可以让你用Javascript、HTML、CSS来编写运行于Windows、macOS、Linux系统之上的桌面应用的库。本文的目的是通过使用Electron开发一个完整但简单的小应用:记事本,来体验一下这个神器的开发过程。本文犹如HelloWorld一样的存在,是个入门级笔记,但如果你之前从未接触过Electron,而又对它有兴趣,某想信这会是一篇值得一看的入门教程。PS:这篇文章是基于Windows的开发过程,未对macOS、Linux作测试。点击这里进入官网下载、安装。由于众所周知的原因,你需要一个cnpm代替npm,这里是官网。安装命令(打开系统的cmd.
使用 Git 获取存储库。
$ git clone https://github.com/katsube/electron-sample-crashreport.git
在安装 Node.js 的环境中执行以下命令,获取需要的库。
$ cd electron-sample-crashreport
$ npm install
启动服务器以保存崩溃日志。
$ node server.js
接收到的信息会发送到crashlist.nedb,转储文件会保存在自动生成的uploads文件夹中。
crashlist.nedb 是一个 JSON 格式的文本文件。您也可以使用文本编辑器打开它。
下面预览。
$ npm start
构建如下。将为每个操作系统创建一
Electron报错: ReferenceError: require is not defined
突然报这个错,网上很多说 要设置 nodeIntegration:true,然而我这并不起作用,
直到在stackoverflow看到一条评论:
All you need to do is add contextIsolation: false after nodeIntegration: true in the webPreferences object,
试了下,果然就没问题了,意思就是在nodeInt
electron出现require is not defined的问题解决办法:
添加这两个属性,一般来说可能添加第一个属性为true就行了,但是我这里不知道为什么不行;
然后,看到某一b站用户的评论,说需要再加contextIsolation: false,立马就不报错了,十分感谢!
function createWindow() {
const win = new BrowserWindow({
width: 800,
height: 600,
webPrefer..
渲染进程的代码
let electron = require('electron'); // 引入electron模块
let app = electron.app; // 创建electron引用
let BrowserWindow = electron.BrowserWindow; // 创建窗口引用
let mainWindow = null; // 声明要打开的主窗
// 加载page需要两个模块:app BrowserWindow
const { app, BrowserWindow } = require("electron");
const path = require("path");
// 热加载
经查相关资料,原来官方在5.0版本修改了nodeIntegration的默认值,官方说明如下:
The default values of nodeIntegration and webviewTag are now false to improve security.
解决办法:
修改创建BrowserWindow部分的相关代码,设置属性webPreferences.nodeIntegra...
我在使用electron制作exe安装包的项目中用到了nodejs的一个usb模块,遇到了一些问题。
二、问题描述
npm install安装(我的这个版本是:“usb”: “^1.6.3”,)之后,启动项目之后发现页面空白,我打开控制台发现了这样的报错:
三、问题分析和解决
这里需要知道electron本质是什么,来看一张图片:
Chromium : 为Electron提供了强大的UI能力,可以不考虑兼容性的情况下,利用强大的Web生态来开发界面。
Node.js :让Electr
Electron 12 及更高版本,设置了nodeIntegration: true,渲染进程仍然会报错误:require is not defined
这时需要在webPreferences中添加:contextIsolation: false
完整如下:
webPreferences:{ nodeIntegration:true,contextIsolation: false}
* nodeIntegration:控制是否集成node
* contextIsolation:控制上下文隔离.
当我们使用electron的时候,想要使用nodejs以及第三方的时候出现Uncaught ReferenceError: require is not defined,这种问题的时候,也许并不是我们的问题而是少了配置。也可能是版本的问题。
而我们只需要再加一个配置,这个错误提示就会消失,
webPreferences: {
nodeIntegration: true,
contextIsolation:false // 把这一项加上错误就会消失
nodeInteg