用Quasar开发Vue3+Electron跨平台应用的简单指南

news2024/11/25 4:20:21

1. 前言

Quasar是一个开源的vue.js基础框架,简单配置即可在其基础上进行SPA, SSR, PWA, 手机网站以及跨平台应用程序的开发,本文将简述如何基于Quasar + Vue3 + Vite + Electron进行桌面应用开发。

2. 配置流程

2.1 框架构建

首先,在要存放代码文件夹的目录下执行如下指令,使用yarnnpm开始框架配置流程,目前官方对pnpm的支持还处于实验阶段,所以推荐使用上述的两种方式。

$ yarn global add @quasar/cli 
$ yarn create quasar 
# or: 
$ npm i -g @quasar/cli 
$ npm init quasar 

命令执行后会出现如下交互

选择App with Quasar CLI然后按需选择就好,建议此处配置的时候选择Vite而不是webpack,在开发阶段会省下很多时间。

在走完此处流程后,基本的框架已经自动搭建好了,我们进入刚刚构建好的文件夹。

2.2 Electron开发模式

进入这个文件夹后,可以看到内容如下:

但此时Quasar是基础版的,我们要进一步配置以开启Electeon开发模式。

2.2.1 编辑.npmrc文件(海外用户可忽略)

由于某些原因,非海外用户在下载Electron有关的包源文件时可能会遇到很多网络问题,所以先修改.npmrc文件添加清华源。

# .npmrc文件内容,pnpm相关的是官方设置,不用管
# pnpm-related options
shamefully-hoist=true
strict-peer-dependencies=false

# electron-related options
electron_mirror="https://npm.taobao.org/mirrors/electron/"
ELECTRON_BUILDER_BINARIES_MIRROR="http://npm.taobao.org/mirrors/electron-builder-binaries/" 

2.2.2 配置Electron模式

执行以下指令

quasar mode add electron 

quasar会在项目目录下创建src-electron文件夹并安装相应依赖包。

为方便调试与打包,可在package.jsonscripts里添加相应指令(devbuild

 ..."scripts": {"test": "echo \"No test specified\" && exit 0","dev": "quasar dev -m electron","build": "quasar build -m electron","gen-icon": "icongenie g -m electron -i public/icons/favicon-128x128.png"},... 

在项目根目录下,找到quasar.config.js,其中electron字段里的就是Electron打包的配置项,包括是使用packager还是builder等等。

 // Full list of options: https://v2.quasar.dev/quasar-cli/developing-electron-apps/configuring-electronelectron: {// extendElectronMainConf (esbuildConf)// extendElectronPreloadConf (esbuildConf)inspectPort: 5858,bundler: 'packager', // 'packager' or 'builder'packager: {// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options// OS X / Mac App Store// appBundleId: '',// appCategoryType: '',// osxSign: '',// protocol: 'myapp://path',// Windows only// win32metadata: { ... }},builder: {// https://www.electron.build/configuration/configurationappId: 'quasar-project',win: {publisherName: "quasar-project-ia32",target: {target: "nsis",arch: ["ia32"]}}}}, 

在执行npm run build的时候,打包所需的依赖包(electron-builder / electron-packager)会自动安装,不需开发者再手动执行安装。

3. 开发要点简述

3.1 文件架构

在项目根目录下src-electron里面放的是Electron相关的代码,src文件夹下放的是mainWindow的代码(Vue),框架生成的时候已经把基本配置生成好了,可以run npm run dev试一试效果。

3.2 Boot Files

与一般Vue项目不一样,Quasar里面没有main.js文件,是用了一系列的boot文件替代的(按官方说法是可以减轻后期维护压力与方便跨平台开发)。

刚开始配置的时候选择的一些插件,比如axios,已经可以在src/boot里面找到了,后续在项目中不需要另行配置。

如果需要增加别的插件,比如我这里加了一个全局event-bus,则需在boot文件夹下新建对应的文件。

上面是一个设置app全局属性的范例。

但是到了这一步还没完,还需要在前面提到的quasar.config.js里面找到boot数组, 加入刚刚新增的文件的文件名。

 ...// app boot file (/src/boot)// --> boot files are part of "main.js"// https://v2.quasar.dev/quasar-cli/boot-filesboot: ['i18n','axios','global-event-bus'],... 

剩下的就当正常Vue和正常Electron写就是了。

4. 总结

Quasar挺好用的,目前基于这套框架开发了几个桌面APP,也没碰到什么bug,他们前端组件升级更新啥的也很快。

唯一不足就是中文文档和技术文章相对较少,碰到问题基本上要去看官网上的英文文档,不过还好英文文档还是挺 完善的。

最后

整理了一套《前端大厂面试宝典》,包含了HTML、CSS、JavaScript、HTTP、TCP协议、浏览器、VUE、React、数据结构和算法,一共201道面试题,并对每个问题作出了回答和解析。

有需要的小伙伴,可以点击文末卡片领取这份文档,无偿分享

部分文档展示:



文章篇幅有限,后面的内容就不一一展示了

有需要的小伙伴,可以点下方卡片免费领取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92995.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

『NLP学习笔记』NER任务的CRF-layer的原理

NER任务的CRF-layer的原理 文章目录一. 预备工作二. BILSTM-CRF模型2.1. BiLSTM层输出2.2. 如果没有CRF层会怎么样2.3. CRF层可以从训练数据中学到约束三. CRF层3.1. 发射(Emission)分数3.2. 转移(Transition)分数3.3. CRF损失函数3.4. 实际路径得分3.5. 所有可能的路径的得分…

Ac-EEVVAC-pNA,389868-12-6

Ac-EEVVAC-pNA, chromogenic substrate for a continuous spectrophotometric assay of HCV NS3 protease. The sequence EEVVAC is derived from the 5A-5B cleavage junction of the HCV polyprotein. Ac-EEVVAC-pNA, HCV NS3蛋白酶连续分光光度法测定的显色底物。EEVVAC序列…

FPGA驱动24C04实现读写操作,提供工程源码和技术支持

目录1.24c04芯片手册解读2.纯verilog的i2c驱动3.24c04读写状态机设计4.上板调试验证5.福利:工程源码获取1.24c04芯片手册解读 24c04芯片手册很简单,原理图设计页很简单,这里只说代码设计需要注意的点: 1、写操作延时周期大于等于…

嵌入式软件工程师技能树——Linux应用编程+网络编程+驱动开发+操作系统+计算机网络

文章目录Linux驱动开发1、Linux内核组成2、用户空间与内核的通讯方式有哪些?3、系统调用read/write流程4、内核态用户态的区别5、bootloader内核 根文件的关系6、BootLoader的作用7、BootLoader两个启动阶段1、汇编实现,完成依赖于CPU体系架构的设置&…

推荐系统学习笔记--推荐系统简介

由来 互联网的出现和普及给用户带来了大量的信息,满足了用户在信息时代对信息的需求,但随着网络的迅速发展而带来的网上信息量的大幅增长,使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而…

前三季度净亏损8.01亿元,亿咖通海外上市背后的「吉利阴影」

中国智能汽车产业链供应商正在通过SPAC方式在海外上市,或将成为新一轮资本浪潮的焦点。这些企业大多数已经具备一定规模,但仍处于亏损状态。 11月21日,亿咖通(ECARX Holdings, Inc.)宣布,之前与COVA Acqui…

Windows Terminal 快速配置 oh-my-posh

背景 想美化下windows terminal ,选择了oh-my-posh。网上的文章有点多,加上官方的教程对初次使用着并不是太友好,所以自己快速摸索了。记录下过程。 步骤 1,安装oh-my-posh 打开以下链接,安装oh-my-posh Windows …

一个进程只能最多创建2000个线程吗?

我经常听到有人说,为什么不能创建一个包含2000个线程的进程。 原因不是Windows中固有的任何特定限制。相反,程序员没有考虑每个线程使用的地址空间量。 线程由内核模式下的一些内存(内核堆栈和对象管理)和用户模式下的一些内存&…

互动抽奖背后的随机性与算法实现

背景抽奖,是一种典型的互动玩法形式。无论是大V的粉丝抽奖,还是活动会场的参与抽奖,这种起源于彩票开奖的互动玩法,同时兼顾了高期待感和低预期的特征,让活动在成本控制之余又能有惊喜和引爆点,这样的优势让…

java毕业设计——基于java+Socket+sqlserver的远程监控系统软件设计与实现(毕业论文+程序源码)——远程监控系统

基于javaSocketsqlserver的远程监控系统软件设计与实现(毕业论文程序源码) 大家好,今天给大家介绍基于javaSocketsqlserver的远程监控系统软件设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录:…

安全智能分析技术 思路方案

思路方案 在安全领域的研究中我们发现,很多数据预处理的步骤,在不同的场景下中都可以相互 借鉴,甚至可以进行直接复用。例如,对于加密流量相关的数据,当算法工程师 获取到一批加密流量的 pcap 包之后,不论他…

【Linux学习】之将输出重定向到文件或程序

将输出重定向到文件或程序 文章目录将输出重定向到文件或程序1. 标准输入、标准输出和标准错误2. 输出重定向操作符2.1 用法及说明2.2 合并重定向运算符2.3 输出重定向示例2.4 输出重定向实例23. 构建管道3.1 含义3.2 管道示例1. 标准输入、标准输出和标准错误 进程使用称为文…

Ac-IYGEF-NH2,168781-78-0

Ac-IYGEF-amide, excellent small peptide substrate for the protein tyrosine kinase pp60c-src (Km 368 M and Vmax 1.02 mol min⁻ mg⁻). Ac-IYGEF-amide,蛋白酪氨酸激酶pp60c-src的优秀小肽底物(Km 368 μ M, Vmax 1.02 μ mol minmg)。 编号: 150669中文名称…

新冠“阳”后嗓子疼到只能喝粥?千万别错过这几条加速康复建议

你一定很熟悉这张传遍朋友圈的小照片。你周围的亲戚、朋友、同事,甚至你自己,可能已经变成了前几批“小阳人”,正在体验传说中的高热、肌痛、头痛、喉咙痛、持续咳嗽、食物不振、味觉和嗅觉丧失。此时此刻,每个人都想增加身体的战…

学习python技术难吗?

现如今Python这门语言的就业前景会非常好。相对于其他来说,它语法简单易读,消除了初学者对于“编程”这一行为的恐惧,让越来越多的非科班有信心开始通过编写简单的程序,究竟学习python技术难吗?关键在于你多注意小编这…

oracle学习篇(三)

oracle学习篇(三) 1 oracle伪列 1.1 查询rowid 1.1.1 示例代码 -- rowid 行id 添加时就生成了(删除某一列时,id会更随着一起删除,id在添加的时候就固定死了) SELECT rowid,e.* FROM emp e1.1.2 运行截图 1.2 查询rownum 1.2.1 示例代码 -- rownum 行号 查询时根据行数产生…

Jmeter(十六):jmeter场景的运行架构(本地运行和远程运行)配置远程负载机

jmeter场景的运行架构(本地运行和远程运行) 运行方式: GUI运行:通过图形界面方式运行,该运行方式的可视化界面及监听器动态展示 结果都比较消耗负载机资源,建议大并发时不用,一般进行脚本调试; 命令行运行…

LeetCode刷题复盘笔记—一文搞懂动态规划之188. 买卖股票的最佳时机 IV问题(动态规划系列第二十三篇)

今日主要总结一下动态规划的一道题目,188. 买卖股票的最佳时机 IV 题目:188. 买卖股票的最佳时机 IV Leetcode题目地址 题目描述: 给定一个整数数组 prices ,它的第 i 个元素 prices[i] 是一支给定的股票在第 i 天的价格。 设计…

带有匹配滤波器的雷达信号调制和脉冲压缩Matlab仿真

up目录 一、理论基础 二、核心程序 三、测试结果 一、理论基础 匹配滤波器: 匹配滤波器是输出端的信号瞬时功率与噪声平均功率的比值最大的线性滤波器也就是说有最大的信噪比。其滤波器的传递函数形式是信号频谱的共轭。在通信系统中,滤波器是其中重…

Selenium3自动化测试【40】Html测试报告

📌 博客主页: 程序员二黑 📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识! 📌 公号同名,欢迎加入我的测试交流群,我们一起交流学习! 目录…