使用Electron 开发了一个应用程序报了JavaScript报错了,如下:
A JavaScript error occurred in the main process
Uncaught Ecxeption:
ReferenceError:fetch is not definded
at Timeout._onTimeout
这个错误的原因是我在js中没有引入必须的模块所致。
我的是没有添加fetch模块,直接添加上就可以了,如下:
// Modules to control application life and create native browser window
const { app, BrowserWindow, Menu, globalShortcut } = require('electron')
const fetch = require('electron-fetch').default
const path = require('path')
报错原因
Electron 主进程(Node 环境)默认没有浏览器侧的 fetch,直接调用会报 ReferenceError: fetch is not defined。
解决办法
- Node 18 及以上已内置全局 fetch,升级 Electron/Node 版本即可。
- 旧版本可安装并使用 node-fetch 或 undici。
- 渲染进程(浏览器环境)可直接使用 fetch。
- 注意区分主进程与渲染进程的全局对象差异。
相关阅读
- IIS 部署 WCF 报 HTTP 错误 404.3 的原因与解决办法
- WebApi Post 404 Not Found|常见原因与解决办法
- electron-forge打包自定义应用图标
- Electron RequestError: read ECONNRESET