vue+electron开发桌面应用程序
一、初始化项目
运行,vue init simulatedgreg/electron-vue 项目名称
|
1
|
vue init simulatedgreg/electron-vue admin |
这里的项目名称是“admin”
如果没有安装vue脚手架,请查看《spring boot + vue + element-ui全栈开发入门——windows开发环境》

一路回车
然后运行npm install来安装依赖,运行方式和之前一样。
如果遇到run dev或者run build的时候出错,可能是因为国内的网络下载“electron-v1.8.3-win32-x64.zip”出错,这时,你需要设置npm的代理:
|
1
2
|
npm config set proxy http://服务器IP或域名:端口号npm config set https-proxy http://服务器IP或域名:端口号 |
如果需要用户名密码:
|
1
|
npm config set proxy http://用户名:密码@服务器IP或域名:端口号 |
npm config set https-proxy http://用户名:密码@服务器IP或域名:端口号
设置回原库
|
1
|
npm config set registry http://registry.npmjs.org |
也可以使用yarn。
|
1
|
npm install -g yarn |
安装依赖、开发模式运行和编程的命令分别是:
|
1
2
3
|
yarn installyarn run devyarn run build |
项目构建完毕后,结构如下图所示:

和之前项目区别是,main是用于桌面程序的代码,render是用于渲染的代码。我们只需要在render文件夹里写代码就可以。
开发模式运行:
|
1
|
npm run dev |

二、代码编写
参照《spring boot + vue + element-ui全栈开发入门——集成element-ui》安装所需的依赖
|
1
2
3
|
cnpm install --save element-uicnpm install --save-dev node-sasscnpm install --save-dev sass-loader<br>cnpm install --save font-awesome |
参照《spring boot + vue + element-ui全栈开发入门——前端列表页面开发》的代码如下:
入口文件:
main.js其中 axios.defaults.baseURL = 'http://localhost:18080' 是设置后端项目URL,而这可以根据具体情况写到配置文件中,开发环境调用开发环境的配置,生产环境调用生产环境配置。
路由文件:
router/index.js
主页面:
Main.vue
会员数据列表页面:
Member.vue
结构如下图所示:

还有,在运行之前,我们需求修改src/main/index.js的配置:
function createWindow() {
/**
* Initial window options
*/
mainWindow = new BrowserWindow({
height: 563,
useContentSize: true,
width: 1000,
webPreferences: {
webSecurity: false
}
})
其目的是为了实现js跨域。
运行之前项目的后端项目《spring boot + vue + element-ui全栈开发入门——spring boot后端开发》:
|
1
2
|
mvn packagejava -jar target/demo.jar |

运行项目,效果如下:

二、生成安装包
|
1
|
npm run build |
如提示缺少vue组建,是因为registry的问题,因为国内taobao镜像没有Electron的依赖环境。所以需要设置回默认的 registry,并使用设置proxy的方式下载依赖环境。
如果提示“icon source "build/icons/icon.ico" not found”
就把“icons”加到build目录下,下载icons请点击链接,根据具体情况修改icons。

生成好后,出现“admin Setup 0.0.0.exe”的文件,即安装程序。
我运用这个安装程序后,打开刚刚开发好的程序,效果如图所示:



发现,虽然只用到了一些前端技术,但已经能够开发出桌面应用了。小时候,老师说:“学好数理化,走遍天下都不怕”。而现在是:“学会了node,任何平台的前端都不怕”。


浙公网安备 33010602011771号