前言
方式
- 不使用webpack
- Vue Cli3 + vue-cli-plugin-electron-builder
- Webpack+HTML+JS
怎么选择
方式2适合单窗口的项目,注意一定不要创建多个窗口加载不同的路由,这样会特别的占用内存。
方式3适合多个窗口的项目,这样每个窗口占用的内存都会降下来。
设置镜像
查看配置文件的位置
1 | npm config list |
可以查看到本机的userconfig
在哪,即.npmrc
文件在哪
比如我的
1 | userconfig C:\Users\18351\.npmrc |
打开该文件 添加
1 | registry=http://registry.npm.taobao.org/ |
注意:
阿里的electron镜像在打包的时候有问题,这里使用华为的。
打包设置
添加打包工具
1 | npm install electron-builder@22.9.1 --save-dev |
在package.json
中做如下配置
1 | { |
注意
LICENSE.txt
文件的内容不能为空。
如果打包时依赖无法下载:
下载地址:
我么可以用其他软件下载,
https://github.com/electron-userland/electron-builder-binaries/releases/
下载后放到
C:\Users\18351\AppData\Local\electron\Cache\f0b1d19ed4c2bbba116e1245a7ca6143c132b885dbd6620e14e9c5b32d7cb569
C:\Users\18351\AppData\Local\electron-builder\Cache\winCodeSign\winCodeSign-2.6.0
C:\Users\18351\AppData\Local\electron-builder\Cache\nsis\nsis-3.0.4.1
C:\Users\18351\AppData\Local\electron-builder\Cache\nsis\nsis-resources-3.4.1
注意一定要解压缩,用户名根据自己的系统为准。
百度云下载地址
链接:https://pan.baidu.com/s/1sGbardIdKjZT0tuhoELbYA
提取码:psvm
静态页面
不使用Webpack
步骤
1 | git clone https://gitee.com/psvmc/electron-quick-start.git |
配置下载32位的electron
项目根目录添加.npmrc
文件
1 | arch=ia32 |
安装依赖启动
1 | cd electron-excel-tool |
配置文件
创建窗口
1 | const { app, BrowserWindow } = require('electron') |
不显示菜单栏
1 | const electron = require('electron') |
图片建议放在项目根目录下建一个static文件夹,加载图片类似
1 | <script src="static/vue.js"></script> |
页面中
1 | new Vue({ |
index.html
1 |
|
单窗口项目
注意
这里的单窗口项目是可以有多个页面的,可以内部路由跳转。
详情参见:https://www.psvmc.cn/article/2019-11-05-vue-cli3-electron.html
1 | vue ui |
创建项目后,安装插件
vue-cli-plugin-electron-builder
package.json
1 | { |
根目录添加vue.config.js
1 | module.exports = { |
多窗口项目(Webpack)
下载项目
1 | git clone https://gitee.com/psvmc/electron-quick-start.git |
package.json
1 | { |
注意
build=>files这里配置所有需要打包的文件,一定不要漏了。
图片建议放在项目根目录下建一个image文件夹,加载图片类似
1 | <img src="image/123.png"/> |
这样可以保证打包前和打包后运行图片都是可以访问。
项目根目录下添加webpack.config.js
1 | const path = require("path"); |
注意
这里entry中配置每个页面需要打包的JS
output设置输出的JS的目录和文件名
把HTML放在根目录
v_login.html
1 |
|
注意
这里的login.js是Webpack打包后生成的js。
login.js
1 | import Vue from 'vue' |
login.vue
1 | <template> |