Electron+vue打包成桌面程序

第一步:安裝nodejs

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

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


這個是nodejs官網


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

macos 下也是點擊安裝,安裝過程基本直接“NEXT”就可以了。


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


圖2


macos 下打開終端輸入?node -v 及npm -v?出現下圖版本提示就是完成了NodeJS的安裝。



圖3

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

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

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

我們就可以全局vue-cli腳手架,輸入命令:npm install--global vue-cli ?回車;驗證是否安裝成功,在命令輸入vue,出來vue的信息,及說明安裝成功;


圖4

第三步:搭建vue項目

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

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


圖5

完成后如下:


圖6


圖7

執(zhí)行命令,出現如下效果說明項目已經運行成功:

npm run dev


圖8

執(zhí)行生成命令:

npm run build

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

圖9

出現如下效果


圖10

項目下回多出一個dist的文件夾,里面就你打包好的東西


接下來一切操作都在dist文件夾目錄下。

第四步:安裝Electron

執(zhí)行命令:

npm install electron

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


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

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

main.js內容如下:

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

let win;

let windowConfig = {

width:800,

? height:600,

? icon:"icon.png",

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

function createWindow() {

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

? 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內容如下:

{

"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項目里面App.vue生命周期里面新增如下代碼:這是自動檢測更新

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文件夾內-執(zhí)行命令:?electron .


成功后效果如下:



出現如上效果說明你已經成功了。

第六步:打包成軟件包

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

npm install electron-builder

npm install electron-package

npm install electron-updater

執(zhí)行打包命令:

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

如出現:

這是得再運行下:npm install electron --save-dev

后再npm run dist


至此全部完成。




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

相關閱讀更多精彩內容

友情鏈接更多精彩內容