Vue使用electron生成桌面應(yīng)用過(guò)程詳解
學(xué)習(xí)關(guān)鍵語(yǔ)句
使用electron打包vue項(xiàng)目
electron制作桌面應(yīng)用
寫在前面
很想使用 electron 制作一個(gè)桌面應(yīng)用,但是真的上手使用的時(shí)候才發(fā)現(xiàn) electron 的坑實(shí)在是太多了
先將遇到的坑記錄在這里,遇到一個(gè)記錄一個(gè)
- 使用 9 以上版本的 vue-i18n 的項(xiàng)目打包成應(yīng)用時(shí)會(huì)失敗,本地運(yùn)行沒(méi)問(wèn)題
- 項(xiàng)目路徑中有中文會(huì)打包失敗
和 electron 相關(guān)的插件版本更替實(shí)在是是太快,并且版本之間還不一定能兼容,所以這篇文章中使用到的插件都會(huì)寫死版本來(lái)保證一定可以打包成功
開(kāi)始
項(xiàng)目開(kāi)始
我們不從零開(kāi)始,直接從之前的項(xiàng)目中拉一個(gè)文件來(lái)作為例子,你可以點(diǎn)擊這里進(jìn)行下載項(xiàng)目,不需要積分
值得一提的是,這篇文章不會(huì)提供完整的文件,你可以使用下載的項(xiàng)目開(kāi)始學(xué)習(xí)
安裝依賴
安裝指定版本 此時(shí)日期為 2023-04-11
npm i electron@24.0.0 -D
npm i vite-plugin-electron@0.11.1 -D
npm i electron-builder@23.6.0 -D
npm i cross-env@7.0.3
針對(duì)項(xiàng)目由 vite 創(chuàng)建的 vue3 項(xiàng)目
修改 vite.config.ts
變動(dòng)語(yǔ)句
vite.config.ts 變動(dòng)
import electron from 'vite-plugin-electron'
electron({
entry: "dist-electron/index.js"
})
放入語(yǔ)句
vite.config.ts 放入
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import electron from 'vite-plugin-electron'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
electron({
entry: "dist-electron/index.js"
})
],
})
修改完成后,會(huì)自動(dòng)在項(xiàng)目根目錄出現(xiàn) dist-electron 文件夾,文件夾內(nèi)有一個(gè)文件 index.js
如果沒(méi)有自動(dòng)出現(xiàn),那就手動(dòng)創(chuàng)建
修改 index.js
index.js
import { app, BrowserWindow } from 'electron'
import path from 'path'
// app 控制應(yīng)用程序的事件生命周期。
// BrowserWindow 創(chuàng)建并控制瀏覽器窗口。
let win;
// 定義全局變量獲取 窗口實(shí)例
const createWindow = () => {
win = new BrowserWindow({
webPreferences: {
devTools: true,
contextIsolation: false,
nodeIntegration: true
// 允許html頁(yè)面上的javascipt代碼訪問(wèn)nodejs 環(huán)境api代碼的能力(與node集成的意思)
}
})
if (process.env.NODE_ENV != 'development') {
win.loadFile(path.join(__dirname, "../dist/index.html"));
} else {
// vite-plugin-electron@0.11.1版本使用以下
win.loadURL(`${process.env['VITE_DEV_SERVER_URL']}`)
}
}
//在Electron完成初始化時(shí)被觸發(fā)
app.whenReady().then(createWindow)
修改 package.json
- 刪除 “type”: “module”
- “name” 同級(jí)添加 “main”: “dist-electron/index.js”
- ,將 script 中的 dev 指令修改為 cross-env NODE_DEV=development vite
- 將 script 中的 build 指令修改為 vue-tsc --noEmit && vite build && electron-builder
將以下添加到 “name” 同級(jí)
"build": {
"appId": "com.electron.desktop",
"productName": "electron",
"asar": true,
"copyright": "Copyright ? 2023 electron",
"directories": {
"output": "release/"
},
"files": [
"dist",
"dist-electron"
],
"mac": {
"artifactName": "${productName}_${version}.${ext}",
"target": [
"dmg"
]
},
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
],
"artifactName": "${productName}_${version}.${ext}"
},
"nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"deleteAppDataOnUninstall": false
},
"publish": [
{
"provider": "generic",
"url": "http://127.0.0.1:8086"
}
],
"releaseInfo": {
"releaseNotes": "版本更新的具體內(nèi)容"
}
}
本地測(cè)試
npm run dev
會(huì)自動(dòng)打開(kāi)
打包成exe文件
npm run build
輸出在項(xiàng)目根目錄下新建的文件夾 release 中,雙擊 exe 文件進(jìn)行安裝就可以打開(kāi)了

到此這篇關(guān)于Vue使用electron生成桌面應(yīng)用過(guò)程詳解的文章就介紹到這了,更多相關(guān)Vue electron生成桌面應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue常見(jiàn)錯(cuò)誤Error?in?mounted?hook解決辦法
這篇文章主要給大家介紹了關(guān)于Vue常見(jiàn)錯(cuò)誤Error?in?mounted?hook的解決辦法,出現(xiàn)這樣的問(wèn)題,會(huì)發(fā)現(xiàn)跟聲明周期鉤子有關(guān)系,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
Vue $emit $refs子父組件間方法的調(diào)用實(shí)例
今天小編就為大家分享一篇Vue $emit $refs子父組件間方法的調(diào)用實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue+webrtc(騰訊云) 實(shí)現(xiàn)直播功能的實(shí)踐
本文主要介紹了vue+webrtc(騰訊云) 實(shí)現(xiàn)直播功能的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
elementui中樹(shù)形表格切換展開(kāi)不同層級(jí)的示例代碼
這篇文章主要介紹了elementui中樹(shù)形表格切換展開(kāi)不同層級(jí),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
vue實(shí)現(xiàn)未登錄跳轉(zhuǎn)到登錄頁(yè)面的方法
這篇文章主要介紹了vue實(shí)現(xiàn)未登錄跳轉(zhuǎn)到登錄頁(yè)面的方法,主要目的是實(shí)現(xiàn)未登錄跳轉(zhuǎn),需要的朋友參考下吧2018-07-07
vue新vue-cli3環(huán)境配置和模擬json數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇vue新vue-cli3環(huán)境配置和模擬json數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
從零到一詳聊創(chuàng)建Vue工程及遇到的常見(jiàn)問(wèn)題
這篇文章主要介紹了從零到一詳聊如何創(chuàng)建Vue工程及遇到的常見(jiàn)問(wèn)題 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04

