.现如今前端框架数不胜数,尤其是angular、vue吸引一大批前端开发者,在这个高新技术快速崛起的时代,自然少不了各种框架的结合使用。接下来是介绍electron+vue的结合使用。

2.Electron是什么??

     对于我来说Electron相当于一个浏览器的外壳,可以把网页程序嵌入到壳里面,可以运行在桌面上的一个程序,可以把网页打包成一个在桌面运行的程序,通俗来说就是软件,比如像QQ、优酷、网易音乐等等。功能的强大超出你的想象,可以构建跨平台桌面程序,本身支持node.js,可以使用node.js的一些模块。想要深入了解可以查看官网的详细介绍。

    Electron官网:https://electronjs.org/  

3.Electron+vue的联合使用

    有vue基础跟nodejs基础的开发人员使用electron那就更顺风顺水了,没有node基础的,有vue或者angular基础的也可以学习,学起来可能会吃力些,不过也没关系,很多东西有大神已经封装好了,直接使用就行。

    接下来教你手把手搭建一个electron+vue的开发环境。

    第一步:安装nodejs

    windows下的NodeJS安装是比较方便的(v0.6.0版本之后,支持windows native),只需要登陆官网(http://nodejs.org/),便可以看到下载页面。 

基于electron的应用的架构 electron应用有哪些_java

2、下载完成后双击运行进行安装,安装过程基本直接“NEXT”就可以了(全部采用默认方式安装)。(windows的安装msi文件在过程中会直接添加path的系统变量,变量值是你的安装路径,例如“C:\Program Files\nodejs”)。

3、安装完成后可以使用cmd(win+r然后输入cmd进入 )测试下是否安装成功。方法:在cmd下输入node -v,出现下图版本提示就是完成了NodeJS的安装。 

基于electron的应用的架构 electron应用有哪些_基于electron的应用的架构_02

基于electron的应用的架构 electron应用有哪些_java_03

4、npm的安装。由于新版的NodeJS已经集成了npm,所以之前npm也一并安装好了。同样可以使用cmd命令行输入”npm -v”来测试是否成功安装。如下图,出现版本提示便OK了。 

基于electron的应用的架构 electron应用有哪些_nodejs_04

基于electron的应用的架构 electron应用有哪些_vue_05

5、常规NodeJS的搭建到现在为止已经完成了,急不及待的话你可以在”cmd“输入”node“进入node开发模式下,输入你的NodeJS第一句:”hello world“ - 输入:console.log(‘hello world’)。

 

基于electron的应用的架构 electron应用有哪些_nodejs_06

 第二步:搭建vue开发环境

      1.安装淘宝npm镜像

             由于在国内使用npm是非常慢的,所以在这里我们推荐使用淘宝npm镜像,使用

$ npm install -g cnpm --registry=https://registry.npm.taobao.org;

cnpm install --global-cli  回车;验证是否安装成功,在命令输入vue,出来vue的信息,及说明安装成功;

     

基于electron的应用的架构 electron应用有哪些_python_07

第三步:搭建vue项目

 使用命令创建项目,一步步选择之后开始等等项目创建完成


1


$  vue init webpack demo



基于electron的应用的架构 electron应用有哪些_vue_08

完成后如下:

基于electron的应用的架构 electron应用有哪些_java_09

成功之后修改启动项,打开demo>config>index.js,具体修改如下:

基于electron的应用的架构 electron应用有哪些_vue_10

    执行命令,出现如下效果说明项目已经运行成功:


1


$  npm run dev


  

基于electron的应用的架构 electron应用有哪些_python_11

执行生成命令:


$ npm run build


 注意: 生成的时候一定要修改index.js 中的生成路径,否则后面程序运行打包页面会显示空白,找不到路径

基于electron的应用的架构 electron应用有哪些_java_12

出现如下效果

基于electron的应用的架构 electron应用有哪些_java_13

项目下回多出一个dist的文件夹,里面就你打包好的东西

基于electron的应用的架构 electron应用有哪些_python_14

接下来一切操作都在dist文件夹目录下。

第四步:安装Electron

执行命令:


1


$ npm install electron



 安装成功后执行:electron -v 查看一下是否安装成功

基于electron的应用的架构 electron应用有哪些_vue_15

第五步:创建主程序的入口(main.js),及相关配置 package.json

在dist文件夹内创建main.js文件及package.json 文件

文件内容如下:

main.js


1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


const {app, BrowserWindow} =require( 'electron' ); //引入electron


let  win;


let  windowConfig = {


width:800,


height:600


}; //窗口配置程序运行窗口的大小


function  createWindow(){


win =  new  BrowserWindow(windowConfig); //创建一个窗口


win.loadURL(`file: //${__dirname}/index.html`);//在窗口内要展示的内容index.html 就是打包生成的index.html


win.webContents.openDevTools();   //开启调试工具


win.on( 'close' ,() => {


//回收BrowserWindow对象


win =  null ;


});


win.on( 'resize' ,() => {


win.reload();


})


}


app.on( 'ready' ,createWindow);


app.on( 'window-all-closed' ,() => {


app.quit();


});


app.on( 'activate' ,() => {


if (win ==  null ){


createWindow();


}


});



 以上是最基本的代码,更复杂的可以自行设计,也可以看官方文档

package.json


1


2


3


4


5


6


7


8


9


10


11


12


13


14


15


16


17


18


19


20


21


22


23


24


25


26


27


28


29


30


31


32


33


34


35


36


37


38


39


40


41


42


43


44


45


46


47


48


49


50


51


52


{


"name" "demo" ,


"productName" "项目名称" ,


"author" "作者" ,


"version" "1.0.4" , //版本号


"main" "main.js" , //主文件入口


"description" "项目描述" ,


"scripts" : {


"pack" "electron-builder --dir" ,


"dist" "electron-builder" ,


"postinstall" "electron-builder install-app-deps"


},


"build" : {


"electronVersion" "1.8.4" ,


"win" : {


"requestedExecutionLevel" "highestAvailable" ,


"target" : [


{


"target" "nsis" ,


"arch" : [


"x64"


]


}


]


},


"appId" "demo" , //程序id


"artifactName" "demo-${version}-${arch}.${ext}" ,


"nsis" : {


"artifactName" "demo-${version}-${arch}.${ext}"


},


"extraResources" : [


{


"from" "./static/xxxx/" , //需要打包的静态资源


"to" "app-server" , //静态资源存放路径


"filter" : [


"**/*" //打包静态资源文件夹内的所有文件  如果没有静态资源要打包进去,extraResources 这段代码去掉


]


}


],


"publish" : [


{


"provider" "generic" ,


"url" "http://xxxxx/download/" //自动更新的安装包地址,初步使用publish这段代码不需要


}


]


},


"dependencies" : {


"core-js" "^2.4.1" ,


"electron-packager" "^12.1.0" , //不打包成exe程序可以去掉


"electron-updater" "^2.22.1" , //不打包成exe程序可以去掉


}


}



 package.json更多配置可查看官方文档:https://www.electron.build/configuration/configuration

 现在万事俱备只欠东风,

执行命令: electron .

 

基于electron的应用的架构 electron应用有哪些_基于electron的应用的架构_16

成功后效果如下:

基于electron的应用的架构 electron应用有哪些_nodejs_17

出现如上效果说明你已经成功了。

第五步:打包成软件包

执行命令


$ npm install electron-builder

$ npm install electron-package

 

基于electron的应用的架构 electron应用有哪些_vue_18

执行打包命令:

electron-bulider

基于electron的应用的架构 electron应用有哪些_python_19

基于electron的应用的架构 electron应用有哪些_vue_20

以上就是打包成功的效果,demo-1.0.4.exe 就是一个软件包,可以直接安装到系统上,不同的操作系统可以打包成不同的安装包。

vue有一个集成的electron的项目

electron-vue ,

现成项目已经发布到githup上

githup地址:https://github.com/2577662935/electron-vue.git

文档访问地址:https://github.com/2577662935/electron-vue/tree/master/my-project