700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > vue项目通过Electron生成桌面应用

vue项目通过Electron生成桌面应用

时间:2019-05-10 06:14:00

相关推荐

vue项目通过Electron生成桌面应用

vue项目通过Electron生成桌面应用

一、安装1. 把electron的官方demo下载下来2. 安装cnpm3. npm start 启动electron4. 修改vue项目5. 打包vue项目,将打包出来的dist文件夹复制到electron项目的根目录下6. electron文件夹中,删除根目录下index.html文件7. electron文件夹中,修改main.js,修改打包文件路径为vue项目的index.html8. electron中,安装打包需要的依赖electron-packager9. 修改package.json,在 scripts 中添加 packager 指令,如下所示:10. 运行命令打包,然后项目中会出现一个的文件夹,这个文件就是打包好的桌面应用,文件夹里有一个 xxx.exe 文件,xxx.exe就是这个项目的启动文件二、打包慢问题1. 安装 electron-builder2. 更改npm的源和版本设置3. package.json配置4. 执行打包1.下载 electron-v版本-打包的平台.zip的包2. 下载 winCodeSign3. 下载 nsis三、接口请求问题1. 修改axios模块的baseUrl属性为真实的url地址2. 在electron主启动类(我的是main.js文件)中关闭web权限检查四、静态资源丢失问题五、路由不跳转问题1. vue项目中router/index.js mode:history 注释掉2. electron的cookie获取有问题,将token获取方式改成通过vuex store存储获取

本文主要使用的方法是将自己的Vue项目打包,放到electron官方的demo文件中,修改相应的配置后,生成exe文件。

一、安装

1. 把electron的官方demo下载下来

git clone /electron/electron-quick-start

2. 安装cnpm

非必要,这个下载快一些

npm install -g cnpm -registry=https://registry.

使用 cnpm -v 查看是否安装成功

使用 cnpm i 安装依赖

3. npm start 启动electron

检查一下是否正常启动

4. 修改vue项目

修改公共路径为相对路径(不修改 npm run build 后会出现白屏情况)

修改vue.config.js中配置为publicPath:’./'

5. 打包vue项目,将打包出来的dist文件夹复制到electron项目的根目录下

npm run build

6. electron文件夹中,删除根目录下index.html文件

7. electron文件夹中,修改main.js,修改打包文件路径为vue项目的index.html

// main.js 原始内容 mainWindow.loadFile('index.html') // 修改后的内容 mainWindow.loadFile('./dist/index.html')

8. electron中,安装打包需要的依赖electron-packager

cnpm install electron-packager --save-dev

9. 修改package.json,在 scripts 中添加 packager 指令,如下所示:

自己修改一下exe的名字和icon路径,更多配置内容请查阅文档

"packager": "electron-packager ./ YOUR_APP_NAME --platform=win32 --arch=x64 --icon=./dist/favicon.ico --overwrite"

10. 运行命令打包,然后项目中会出现一个的文件夹,这个文件就是打包好的桌面应用,文件夹里有一个 xxx.exe 文件,xxx.exe就是这个项目的启动文件

npm run packager

二、打包慢问题

上面的打包方式太慢,使用electron-builder打包

1. 安装 electron-builder

cnpm install electron-builder --save-dev

2. 更改npm的源和版本设置

这个设置可以在你执行安装依赖之前就设置好

//你可以使用终端输入命令

npm set ELECTRON\_MIRROR\=/mirrors/electron/ npm set ELECTRON\_CUSTOM\_DIR\=16.0.5

或者直接在C:\user\xxx路径下 搜索**.npmrc**然后打开文件进行修改

registry=/ELECTRON\_MIRROR\=/mirrors/electron/ELECTRON\_CUSTOM\_DIR\="==16.0.5"

注意:这个版本号需要和你package.json中的版本号相同

3. package.json配置

{"name": "electron-quick-start","version": "1.0.0","description": "A minimal Electron application","main": "main.js","build": {"productName": "myFirstElectron","appId": "com.electron.electron-quick-start","copyright": "xxxx","directories": {"output": "build"},"mac": {"target": ["dmg","zip"]},"win": {"target": ["nsis","zip"],"icon": "./dist/favicon.ico"}},"scripts": {"start": "electron .","packager": "electron-packager ./ myFirstElectron --platform=win32 --arch=x64 --icon=./dist/favicon.ico --overwrite","dist": "electron-builder --win --x64"},"repository": "/electron/electron-quick-start","keywords": ["Electron","quick","start","tutorial","demo"],"author": "GitHub","license": "CC0-1.0","devDependencies": {"electron": "^16.0.5","electron-builder": "^22.14.5","electron-packager": "^15.4.0"},"electronDownload": {"mirror": "/mirrors/electron/"}}

这里默认是打windows 64位的包.

如果打其他平台的包,只需要更改dist对应的命令,大概怎么配置请百度builder的配置

4. 执行打包

npm run dist

打包需要依赖于三个包,分别是

electron-v版本-打包的平台.zip的包(如我这里是 electron-v16.0.5-win32-x64.zip )winCodeSignnsis

远程下载这三个依赖时,可能会因为超时报错,根据错误提示的地址(如下图)手动安装相应的文件就行。

1.下载 electron-v版本-打包的平台.zip的包

在electron 淘宝镜像:/mirrors/electron/ 中选择自己需要的版本,如我这是是16.0.5,下载electron-v16.0.5-win32-x64.zipSHASUMS256.txt,下载完成后,将SHASUMS256.txt文件改成SHASUMS256.txt-16.0.5拷入如图位置:

2. 下载 winCodeSign

根据报错信息提示的下载地址,手动下载自己需要的版本,下载Source code(zip),我这里是

/electron-userland/electron-builder-binaries/releases/download/winCodeSign-2.6.0/winCodeSign-2.6.0.7z

下载后解压,拷贝解压后的文件夹中winCodeSign文件夹中的所有文件到如图位置:

3. 下载 nsis

根据报错信息提示的下载地址,手动下载自己需要的版本,我这里是

/electron-userland/electron-builder-binaries/releases/download/nsis-3.0.4.2/nsis-3.0.4.2.7z

/electron-userland/electron-builder-binaries/releases/download/nsis-resources-3.4.1/nsis-resources-3.4.1.7z

下载后解压,拷贝解压后的文件到如图位置:

下好后重新执行npm run dist,会生成exe文件。

注意:打包要求ico文件最少是256*256

三、接口请求问题

electron-bulider 打包后,接口请求前缀变成file://的问题

对基于 electron-builder 插件创建的桌面应用,所有的页面访问都被影射到了文件上,所以配置中的proxy值如:/api访问都会映射到文件上,对vue的网络代理将失效。解决这一问题可以使用electron的方式实现跨域请求,解决方案如下:

1. 修改axios模块的baseUrl属性为真实的url地址

Vue.prototype.axios.defaults.baseURL ="http://localhost:8088/server";

也可以通过修改.env.produnction中的配置来修改 axiosbaseURL 的值,如下:

2. 在electron主启动类(我的是main.js文件)中关闭web权限检查

async function createWindow() {const win = new BrowserWindow({...webPreferences: {...//关闭web权限检查,允许跨域webSecurity: false}})//打包后开启控制台//win.webContents.openDevTools();... }

四、静态资源丢失问题

vue项目中router/index.js mode:history 注释掉

五、路由不跳转问题

1. vue项目中router/index.js mode:history 注释掉

2. electron的cookie获取有问题,将token获取方式改成通过vuex store存储获取

request.js

permission.js

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。