Electron+vue打包成桌面程序

第一步:安裝nodejs

1、windows下的NodeJS安裝是比較方便的(v0.6.0版本之后,支持windows native),只需要登陸官網(wǎng)(http://nodejs.org/),便可以看到下載頁(yè)面。?

macos 下也可以下載直接安裝官網(wǎng)(https://nodejs.org/en/)最好下載LTS版本


這個(gè)是nodejs官網(wǎng)


2、windows下載完成后雙擊運(yùn)行進(jìn)行安裝,安裝過(guò)程基本直接“NEXT”就可以了(全部采用默認(rèn)方式安裝)。(windows的安裝msi文件在過(guò)程中會(huì)直接添加path的系統(tǒng)變量,變量值是你的安裝路徑,例如“C:Program Files odejs”)。

macos 下也是點(diǎn)擊安裝,安裝過(guò)程基本直接“NEXT”就可以了。


3、windows安裝完成后可以使用cmd(win+r然后輸入cmd進(jìn)入 )測(cè)試下是否安裝成功。方法:在cmd下輸入node -v,出現(xiàn)下圖版本提示就是完成了NodeJS的安裝。?


圖2


macos 下打開(kāi)終端輸入?node -v 及npm -v?出現(xiàn)下圖版本提示就是完成了NodeJS的安裝。



圖3

4、npm的安裝。由于新版的NodeJS已經(jīng)集成了npm,所以之前npm也一并安裝好了。同樣可以使用cmd命令行輸入”npm -v”來(lái)測(cè)試是否成功安裝。如上圖,出現(xiàn)版本提示便OK了。?

常規(guī)NodeJS的搭建到現(xiàn)在為止已經(jīng)完成了

第二步:搭建vue開(kāi)發(fā)環(huán)境

我們就可以全局vue-cli腳手架,輸入命令:npm install--global vue-cli ?回車(chē);驗(yàn)證是否安裝成功,在命令輸入vue,出來(lái)vue的信息,及說(shuō)明安裝成功;


圖4

第三步:搭建vue項(xiàng)目

?使用命令創(chuàng)建項(xiàng)目,一步步選擇之后開(kāi)始等等項(xiàng)目創(chuàng)建完成

在命令行輸入:vue init webpack myapp? 其中“myapp”是我的項(xiàng)目名。


圖5

完成后如下:


圖6


圖7

執(zhí)行命令,出現(xiàn)如下效果說(shuō)明項(xiàng)目已經(jīng)運(yùn)行成功:

npm run dev


圖8

執(zhí)行生成命令:

npm run build

?注意: 生成的時(shí)候一定要修改index.js 中的生成路徑,否則后面程序運(yùn)行打包頁(yè)面會(huì)顯示空白,找不到路徑

圖9

出現(xiàn)如下效果


圖10

項(xiàng)目下回多出一個(gè)dist的文件夾,里面就你打包好的東西


接下來(lái)一切操作都在dist文件夾目錄下。

第四步:安裝Electron

執(zhí)行命令:

npm install electron

 安裝成功后執(zhí)行:electron -v 查看一下是否安裝成功


第五步:創(chuàng)建主程序的入口(main.js),及相關(guān)配置 package.json

在dist文件夾內(nèi)創(chuàng)建main.js文件及package.json 文件

main.js內(nèi)容如下:

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

let win;

let windowConfig = {

width:800,

? height:600,

? icon:"icon.png",

}; //窗口配置程序運(yùn)行窗口的大小

function createWindow() {

win =new BrowserWindow(windowConfig); //創(chuàng)建一個(gè)窗口

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

? win.webContents.openDevTools(); //開(kāi)啟調(diào)試工具

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

//回收BrowserWindow對(duì)象

? ? 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內(nèi)容如下:

{

"name": "myapp",

? "productName": "myapp",

? "author": "cdl",

? "version": "1.0.0",

? "main": "main.js",

? "description": "myapp",

? "scripts": {

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

? ? "dist": "electron-builder",

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

? },

? "build": {

"directories": {

"output": "build"

? ? },

? ? "electronVersion": "20.1.2",

? ? "win": {

"requestedExecutionLevel": "highestAvailable",

? ? ? "target": [

{

"target": "nsis",

? ? ? ? ? "arch": [

"x64"

? ? ? ? ? ]

}

]

},

? ? "appId": "com.app.myapp",

? ? "artifactName": "myapp.${ext}",

? ? "extraResources": [],

? ? "nsis": {

"artifactName": "myapp.${ext}"

? ? },

? ? "publish": [

{

"provider": "generic",

? ? ? ? "url": "myapp"

? ? ? }

]

},

? "dependencies": {

"core-js": "^2.4.1",

? ? "electron-package": "^0.1.0",

? ? "electron-packager": "^12.1.0",

? ? "electron-updater": "^4.6.5",

? ? "fs-extra": "^4.0.1",

? ? "install.js": "^1.0.1",

? ? "moment": "^2.18.1",

? ? "moment-es6": "^1.0.0"

? },

? "license": "ISC",

? "devDependencies": {

"electron-builder": "^23.3.3"

? }

}

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

在你的vue項(xiàng)目里面App.vue生命周期里面新增如下代碼:這是自動(dòng)檢測(cè)更新

mounted: function () {

? ? ? if (window.require) {

? ? ? ? let ipc = window.require('electron').ipcRenderer;

? ? ? ? ipc.send("checkForUpdate");

? ? ? ? ipc.on("message", (event, text) => {

? ? ? ? ? this.tips = text;

? ? ? ? ? console.log('message1',this.tips)

? ? ? ? });

? ? ? ? ipc.on("downloadProgress", (event, progressObj)=> {

? ? ? ? ? this.downloadPercent = progressObj.percent || 0;

? ? ? ? ? console.log('message2',this.downloadPercent)

? ? ? ? });

? ? ? ? ipc.on("isUpdateNow", () => {

? ? ? ? ? ipc.send("isUpdateNow");

? ? ? ? });

? ? ? }

? ? },

在dist文件夾內(nèi)-執(zhí)行命令:?electron .


成功后效果如下:



出現(xiàn)如上效果說(shuō)明你已經(jīng)成功了。

第六步:打包成軟件包

在dist文件夾內(nèi)-執(zhí)行命令

npm install electron-builder

npm install electron-package

npm install electron-updater

執(zhí)行打包命令:

electron-bulider 或?執(zhí)行命令:npm run dist

如出現(xiàn):

這是得再運(yùn)行下:npm install electron --save-dev

后再npm run dist


至此全部完成。




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容