使用Electron把Vue项目打包成桌面客户端

news/2024/7/5 0:56:21

目录

  • 预期目标
  • 项目准备
  • 安装electron-builder
  • 调试electron:serve
  • 打包electron:build
  • 客户端配置

预期目标

本文假定读者已经能够顺利开发Vue(2.x)项目,并期望使用Electron把项目打包成桌面客户端的形式(Windows平台,64位)。

项目准备

确保现有的Vue项目已经能够正常运行并可通过npm run build命令进行编译部署,这里需要注意编译后的资源路径问题。
默认情况下,Vue CLI会假设应用是被部署在一个域名的根路径下,如果是被部署在一个子路径下,则需要把publicPath设置为空字符串或相对路径:

// vue.config.js 存放在项目的根目录下,与package.json同级
module.exports = {
    publicPath: './'
}

另外,本案例使用到的工具/库版本如下:

  • node v14.15.0
  • npm v7.20.6
  • yarn v1.22.11
  • @vue/cli v4.5.13

安装electron-builder

在项目目录下执行 vue add electron-builder 命令,安装electron-builder插件。
在这里插入图片描述
按照提示,选择要安装的Electron版本后,会自动安装相关依赖包。
在这里插入图片描述
如上所示,虽然提示已成功安装了electron-builder插件及相关依赖,但后续执行electron:serveelectron:build命令时,大概率会报错:electron包没有安装成功,请删掉node_modules后重新安装!
这时即使删掉node_modules,用npmcnpm重新安装所有包,仍然不会成功,这是因为npm对electron相关依赖包的解析有问题。
这里在删掉node_modules后,可以使用yarn代替npm重新安装所有的包。

安装electron-builder插件成功后,插件会自动修改package.json文件,并在src目录下生成background.js客户端配置文件。
在这里插入图片描述

调试electron:serve

在项目目录下执行 npm run electron:serve 命令,打开网页及客户端调试模式。
在这里插入图片描述
使用Electron打包的客户端,本质上是在内部集成了一个chrome浏览器内核,然后用其渲染HTML页面,并且自带与浏览器一致的开发者工具,支持热更新。
在这里插入图片描述

打包electron:build

在项目开发完成后,可以通过npm run electron:build 命令把项目打包成最终的PC客户端。
第一次打包时,因为从github网站下载打包需要的系统文件时速度非常慢,大概率会卡在Downloading阶段,最终导致打包失败。
在这里插入图片描述

这时可以手动从github下载相关文件(共4个压缩包),并放到指定目录下:

  • C:\Users\Neo\AppData\Local\electron\Cache
    • electron-v12.0.17-win32-x64.zip
  • C:\Users\Neo\AppData\Local\electron-builder\Cache\nsis
    • nsis-3.0.4.1.7z
    • nsis-resources-3.4.1.7z
  • C:\Users\Neo\AppData\Local\electron-builder\Cache\winCodeSign
    • winCodeSign-2.6.0.7z

以上系统路径及文件名仅做参考,不同系统用户及版本会有不同,根据cmd中的提示下载对应版本。

手动下载完成以上文件后,重新执行npm run electron:build进行打包。
在这里插入图片描述

打包成功后,会在项目根目录下生成dist_electron文件夹,里面包含客户端安装文件(Setup)及未压缩的安装包(里面包含可直接运行的客户端exe文件)。
在这里插入图片描述

客户端配置

安装electron-builder插件成功后,会在src目录下自动生成客户端的配置文件background.js,其中可以对客户端窗口进行各项配置,并在调试和打包时自动加载。
在这里插入图片描述


http://www.niftyadmin.cn/n/1129070.html

相关文章

100422 阴

死过人的房子你敢住吗 2DK 海附近 算上管理费36040 无礼金无更新料 距离车站5分钟 到新宿1小时转载于:https://www.cnblogs.com/loverain/archive/2010/04/22/1717969.html

socket编写HTTP response header的一个小问题

2019独角兽企业重金招聘Python工程师标准>>> 怎么用socket编程编写一个HTTP response header?其实没什么特别的,只要了解HTTP response header的构成就行。关于HTTP request/response header的fields的介绍和详解——http://my.oschina.net/B…

邂逅物联网

如果说,我们的生产、生活中被“物联网”包围,相信很多人会纠正。“是被‘互联网’包围,不是‘物联网’吧?!”互联网的发展长期处于“风口浪尖”,尤其是移动互联网的崛起,让人们获取信息渠道、处…

如何在微信小程序中使用WeUI组件库

WeUI组件库是一套基于样式库weui-wxss开发的小程序扩展组件库,同微信原生视觉体验一致。 在全局配置中引入WeUI 在小程序全局配置文件app.json中以扩展库的形式引入WeUI,相当于引入了对应扩展库最新版本的npm包,同时不占用小程序的包体积。…

为什么要用RAID卡

为什么要用RAID卡,它有什么优势 那些需要在硬盘上保存大量数据的人(例如 一个普通的管理人员) ,采用 RAID 技术将会很方便。采用 RAID 的主要原因是: 1 增强了速度 2 扩容了存储能力(以及更多的便利) 3可高效恢复磁盘 RAID卡采用卡上专用的微处理来所有…

开启数据智慧,阿里云大数据团队调研高新区

原文链接:http://click.aliyun.com/m/13874/ 2月15日,阿里云大数据公司调研组来到高新区,进行为期三天的大数据产业发展情况调研活动。高新区分管领导、市工商联副主席及职能部门参加了此次调研活动。调研组一行首先走访了大全集团和威腾集团…

论程序员与妓女

1,程序界的高手通常很讨厌微软,妓女界的高手嗯。。这个。。恐怕也如此 2,都是吃青春饭,不过到人老猪黄后,凭着混个脸熟,程序员可以混个管理员,妓女也行,不过俗称老鸨 3&…

最好用图像处理库CxImage入门

2019独角兽企业重金招聘Python工程师标准>>> CxImage是一款免费的、开源的、功能强大的图形处理库。跨平台,支持windows、linux等;支持BMP、GIF、ICO、TGA、JPEG、PCX、PNG、TIFF、MNG、RAS等多种图像格式;支持格式转换、图像处理…