当前位置: 首页 > news >正文

Vue-Electron配置及踩坑

前言

大道至简。太复杂的教程不看。

本篇将记述我创建好Vue3项目之后,用Electron把页面呈现出来的整个过程。会记录一些踩坑。

首先,Electron官网可以参考。但是它只是作出了一个普通的html结构该如何用Electron呈现出来,vue的配置有一些变更。

参考这篇文档就好了。

具体步骤

步骤一:创建一个Vue项目(不赘述);

步骤二:下载Electron包:
在这里插入图片描述
步骤三:在根目录下创建Electron文件夹,里面创建一个Electron的入口文件:main.js,内容如下。app控制Electron的生命周期,而BrowserWindow用于控制其窗口。所以我们可以更改一个自己认为合适的桌面应用尺寸:

const { app, BrowserWindow } = require('electron')
// const path = require("path")const createWindow = () => {const mainWindow = new BrowserWindow({width: 1000,height: 700,})// 主要改了这里// mainWindow.loadFile(path.join(__dirname, "./index.html"));// 使用 loadURL 加载 http://localhost:3004 ,也就是我们刚才创建的 Vue 项目地址// 3004 改为你 Vue 项目的端口号mainWindow.loadURL("http://localhost:8080/");
}app.whenReady().then(() => {createWindow()
})

步骤四:在vue的package.JSON中配置Electron的入口以及指令,这里需要注意,main后面跟的是刚刚配置Electron的入口文件main.js的位置,而electron后面的命令是:

electron .

在这里插入图片描述
步骤五:运行项目
先跑vue项目,再跑electron,开两个终端,分别执行:

npm run serve
npm run electron

最后的效果:
在这里插入图片描述
如果想在electron应用内部调试控制台,快捷键:ctrl+shift+i:
在这里插入图片描述

踩坑部分

1.下载的东西太多,有的文档会要求下载各种文件,而且npm的源不一定会有那个对应的包。其实初期不需要那么多的东西,可以直接按照上面的步骤来;

2.main.js文件中的地址需要根据自己的本地运行来配置,一般Vue的端口号是8080,vite默认的端口号又不太一样。所以需要注意。
在这里插入图片描述

3.如果按照上述步骤走还有bug,可以检查下electron的入口文件是否地址是对的。以及包的版本问题。如果实在有问题也可以评论区见~

相关文章:

  • 每日一题 第六十六期 洛谷 小朋友排队
  • Maven是什么? Maven的概念+作用
  • 计算机网络-HTTP相关知识-RSA和ECDHE及优化
  • Unity类银河恶魔城学习记录11-15 p117 Ice and Fire item Effect源代码
  • 【详细介绍WebKit的结构】
  • 缓存最佳实践
  • Pointnet++改进即插即用系列:全网首发OREPA在线重新参数化卷积,替代普通卷积 |即插即用,提升特征提取模块性能
  • Fractions Again?!(UVA 10976)
  • linux系统编程 线程 p1
  • C#字典学习笔记
  • 实验:基于Red Hat Enterprise Linux系统的创建磁盘和磁盘分区(二、三)
  • zabbix图表时间与服务器时间不一致问题
  • android——枚举enum
  • 软件测试工程师面试汇总功能测试篇
  • Spring中BeanFactoryPostProcessor详解
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Android系统模拟器绘制实现概述
  • Docker入门(二) - Dockerfile
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • npx命令介绍
  • Puppeteer:浏览器控制器
  • Rancher如何对接Ceph-RBD块存储
  • React 快速上手 - 07 前端路由 react-router
  • Web Storage相关
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 番外篇1:在Windows环境下安装JDK
  • 前端自动化解决方案
  • 首页查询功能的一次实现过程
  • AI算硅基生命吗,为什么?
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • (4)事件处理——(7)简单事件(Simple events)
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot教学评价 毕业设计 641310
  • (南京观海微电子)——I3C协议介绍
  • (十)c52学习之旅-定时器实验
  • ***测试-HTTP方法
  • .NET Core 2.1路线图
  • .NET/C# 使窗口永不获得焦点
  • .net开发时的诡异问题,button的onclick事件无效
  • .NET开源快速、强大、免费的电子表格组件
  • .NET命名规范和开发约定
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • ?php echo ?,?php echo Hello world!;?
  • @angular/cli项目构建--Dynamic.Form
  • @RequestBody与@ResponseBody的使用
  • @vue/cli 3.x+引入jQuery
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [1181]linux两台服务器之间传输文件和文件夹
  • [AIGC] MySQL存储引擎详解
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法