## **Electron 介绍**
Electron是一个基于node.js的跨平台桌面应用
它最大的有点在于可以使用JavaScript 和 HTML来构建跨平台的桌面应用。
我们常见的文本编辑器 atom,vscode就是基于Electron开发的。
![](https://img.kancloud.cn/42/bf/42bf5f1d9110a691281622cba761056c_460x474.png)
## **Electron-vue**
该项目的目的,是为了要避免使用 vue 手动建立起 electron 应用程序。electron-vue 充分利用`vue-cli`作为脚手架工具,加上拥有`vue-loader`的`webpack`、`electron-packager`或是`electron-builder`,以及一些最常用的插件,如`vue-router`、`vuex`等等。
## **安装**
本项目需要使用`node@^7`或更高版本。electron-vue 官方推荐yarn作为软件包管理器,因为它可以更好地处理依赖关系,并可以使用`yarn clean`帮助减少最后构建文件的大小。
*****
~~~bash
# 安装yarn,切换淘宝源
npm install --global yarn
yarn config set registry https://registry.npm.taobao.org
# 安装 vue-cli
yarn global add vue-cli # 或者 npm install -g vue-cli
# 初始化脚手架样板代码(project-name是项目名称,你可以任意更换)
# 最好不要选择eslint
vue init simulatedgreg/electron-vue project-name
# 切换到项目目录下,安装依赖
cd project-name
yarn # 或者 npm install
# 运行你的程序
yarn run dev # 或者 npm run dev
~~~
运行结果如下:
![](https://img.kancloud.cn/0c/44/0c44fae51c44cdd1837fc080ec197e96_800x450.png)
## **目录结构介绍**
![](https://img.kancloud.cn/d7/5c/d75c2d5c68612512c452bdde15c62f75_448x539.jpg)
.electron-vue是Webpack 配置
build文件里有一个icons存放图标的文件,打包后的文件也在这个目录下
dist文件夹不用管
src/main是主线程
src/renderer是渲染线程,里面的结构就是正常的vue
src/index.ejs就是vue-cli的index.html
static文件存放静态文件
package.json 定义了这个项目所需要的各种模块,以及项目的配置信息
## **用户注意事项**
**可能遇到的问题:**
1.启动Electron-vue报错Webpack ReferenceError:process is not defined
**解决方案:**
修改.electron-vue/webpack.web.config.js和.electron-vue/webpack.renderer.config.js文件的HtmlWebpackPlugin,添加templateParameters,修改后如下:
~~~css
new HtmlWebpackPlugin({
filename: 'index.html',
template: path.resolve(__dirname, '../src/index.ejs'),
# 新增的配置
templateParameters(compilation, assets, options) {
return {
compilation: compilation,
webpack: compilation.getStats().toJson(),
webpackConfig: compilation.options,
htmlWebpackPlugin: {
files: assets,
options: options
},
process,
};
},
minify: {
collapseWhitespace: true,
removeAttributeQuotes: true,
removeComments: true
},
nodeModules: false
}),
~~~
- 快速安装electron-vue
- 集成element-ui
- 实例:封装api请求接口、数据签名、数据存储
- 实例:用户登录,本地存储用户信息
- 实例:获取用户列表,分页查询
- 实例:用户增加,表单校验,防重复提交
- 实例:用户编辑
- 实例:用户删除
- 实例:集成echarts,完成图表统计
- 实例:监听网络变化,弹出断网通知(解决win10通知沒法出來的问题)
- 实例:自定义应用程序菜单、系统右键菜单
- 实例:自定义系统托盘,托盘右键菜单,图标闪烁
- 实例:自定义关闭按钮,点击右上角关闭按钮隐藏到托盘
- 实例:开机自启动
- 实例:实现单实例,确保只有一个应用程序
- 实例:集成socket.io主动给客户端发送消息
- thinkphp整合phpsocketio
- 集成vue-socket.io
- 实例:打包软件,自定义软件名称、软件版本
- 实例:NSIS安装包定制及美化
- 实例:版本升级,自动下载更新