准备工作:
1.有现成的vue项目。
2.将vue项目打包生成发布文件,例如如下结果:

3.安装Electron
$ npm install electron -g
这里我使用的是全局安装,通过 electron -v 命令查看electron 是否安装成功
4.创建主程序的入口(main.js),该文件和vue打包生成的文件在同一目录中
1 const {app, BrowserWindow} =require('electron');//引入electron 2 let win; 3 let windowConfig = { 4 width:800, 5 height:600 6 };//窗口配置程序运行窗口的大小 7 function createWindow(){ 8 win = new BrowserWindow(windowConfig);//创建一个窗口 9 win.loadURL(`file://${__dirname}/index.html`);//在窗口内要展示的内容index.html 就是打包生成的index.html 10 //win.webContents.openDevTools(); //开启调试工具 11 win.on('close',() => { 12 //回收BrowserWindow对象 13 win = null; 14 }); 15 win.on('resize',() => { 16 win.reload(); 17 }) 18 } 19 app.on('ready',createWindow); 20 app.on('window-all-closed',() => { 21 app.quit(); 22 }); 23 app.on('activate',() => { 24 if(win == null){ 25 createWindow(); 26 } 27 });
5.配置 package.json文件,该文件和vue打包生成的文件在同一目录中
1 { 2 "name": "demo", 3 "productName": "项目名称", 4 "author": "wh", 5 "version": "1.0.0", 6 "main": "main.js", 7 "description": "Web三维", 8 "scripts": { 9 "pack": "electron-builder --dir", 10 "dist": "electron-builder", 11 "postinstall": "electron-builder install-app-deps" 12 }, 13 "build": { 14 "electronVersion": "1.8.4", 15 "win": { 16 "requestedExecutionLevel": "highestAvailable", 17 "target": [ 18 { 19 "target": "nsis", 20 "arch": [ 21 "x64" 22 ] 23 } 24 ] 25 }, 26 "appId": "Web3d", 27 "artifactName": "demo-${version}-${arch}.${ext}", 28 "nsis": { 29 "artifactName": "demo-${version}-${arch}.${ext}" 30 }, 31 "extraResources": [ 32 { 33 "from": "./static/assets/", 34 "to": "app-server", 35 "filter": [ 36 "**/*" 37 ] 38 } 39 ] 40 }, 41 "dependencies": { 42 "core-js": "^2.4.1", 43 "electron-packager": "^12.1.0", 44 "electron-updater": "^4.2.0" 45 } 46 }
生成桌面应用程序
1.进入vue打包后的文件目录,如dist文件下,shift+右键 打开命令行窗口,输入“ electron . ” 命令检测前期准备工作是否完美无瑕。成功则会自动运行你的项目。
2.安装electron-builder和electron-package,这里我也都是全局安装
$ npm install electron-builder -g $ npm install electron-package -g
3.执行“electron-bulider“命令生成exe桌面应用程序。

该文件内容在dist/dist目录下。
过程大概是这样的,但实践可能并不是那么一帆风顺,当然,如果遇到报错,根据错误提示也是能轻易解决问题的。
浙公网安备 33010602011771号