网站首页 > 技术文章 正文
打包报错
按照示例教程打包应用,报错:
- An unhandled rejection has occurred inside Forge:
- Error: Command failed with a non-zero return code (1):
- Fatal error: Unable to commit changes
- Electron Forge was terminated. Location...
本地运行起来的桌面窗口未关闭,先关了再来打包。
引用 react + vite 打包后的 dist 文件白屏
react + vite build 打包后的文件,js 和 css 资源引用路径都是绝对路径,导致 electron 中加载不到对应的文件。
<script type="module" crossorigin src="/assets/index.21b9ac96.js"></script>
<link rel="stylesheet" href="/assets/index.c622ce5d.css">
解决办法,配置 vite.config.js 中的 base: './' 为相对路径。
本地运行调试前端项目
正常打包项目是用 win.loadFile 加载打包好的 html 文件,本地运行时可以直接用 win.loadURL 直接引入本地运行的前端服务,方便调试和开发。
// win.loadFile('./dist/index.html')
win.loadURL('http://127.0.0.1:5173/')
使用 node 模块
渲染进程使用 node 模块,需要额外配置 webPreferences
// main.js
const { app, BrowserWindow } = require('electron')
let win = null
app.on('ready', () => {
win = new BrowserWindow({
width: 800,
height: 800,
webPreferences: { // 在渲染进程中使用node, 需要配置 webPreferences属性
nodeIntegration: true, // 使渲染进程拥有node环境
contextIsolation: false, // 设置此项为false后,才可在渲染进程中使用 electron api,https://www.electronjs.org/zh/docs/latest/api/browser-window
preload: path.join(__dirname, 'preload.js')
})
})
// preload.js
window.require = require
注意需要用 preload 预加载脚本去设置下 window.require,这样才能在 vue、react 项目中用 require 去导入 node 相关模块,当然你也可以往 window 上挂载其他需要挂载的,注意这样挂载了不能直接在浏览器中调试,会报错的,要在 electron 中去调试。
主进程和渲染进程通信
ipcRenderer 和 ipcMain 通过 send 和 on 事件监听通信,如果一方收到信息后还要回复另一方,只能通过 event.reply 发送给对方另一个事件实现回复通信。
不过还可以通过 ipcMain.handle 用 promise 来 return 数据实现回复,主进程 ipcMain.handle,渲染进程 ipcRenderer.invoke。
数据传递
vue3 中如果用的 reactive 定义的数据,其实是一个 Proxy 代理对象,直接往主进程传递会报错,要自己 JSON.parse(JSON.stringify(xx)) 或者将数据复制到普通对象进行传递。
查看相关版本号
- electron 版本:process.versions.electron
- NODE版本:process.versions.node
- V8 引擎版本:process.versions.v8
- chrome版本:process.versions.chrome
- 上一篇: JavaScript 模块的构建以及对应的打包工具
- 下一篇: Vue项目优化打包——前端加分项
猜你喜欢
- 2025-05-25 前端怎么打包成小程序和APP圈子系统开发平台圈子系统源码
- 2024-09-24 五种可视化方案分析webpack打包性能瓶颈
- 2024-09-24 我在实际前端项目中遇到的坑(Electron)
- 2024-09-24 vue-cli 大型项目打包优化
- 2024-09-24 vscode运行打包后的npm前端dist文件
- 2024-09-24 关于vue-cli 3配置打包优化要点
- 2024-09-24 一起来学习打包工具 rollup.js 入门,也许你会需要
- 2024-09-24 运行时 Bun 又添王炸,支持 Bun宏!
- 2024-09-24 探寻webpack打包vue项目特别慢问题
- 2024-09-24 将前端框架vue打包后部署到node服务中,本文采用egg框架演示
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)