vue配置electron使用electron-builder進(jìn)行打包的操作方法
1. 已知:vue3項(xiàng)目已經(jīng)創(chuàng)建好
1.1 安裝依賴(npm i) ;運(yùn)行項(xiàng)目(npm run dev),確保項(xiàng)目是好的。

1.2. 打包本地Vue項(xiàng)目(npm run build)
打包好后會(huì)自動(dòng)形成dist 文件夾

一、配置Electron
1. 安裝electron
cnpm install --save-dev electron
安裝好后,package.json 中會(huì)加載electron 及其版本號(hào)

配置 ?????vite.config.js文件

ps:在配置vite.config.js文件之后可以進(jìn)行打包本地項(xiàng)目。
2. 在根目錄創(chuàng)建electron 文件夾,并新建main.js 和preload.js

main.js :
const { app, BrowserWindow } = require('electron')
const path = require('path')
const createWindow = () => {
const win = new BrowserWindow({
width: 800,
height: 600,
// 將此腳本(preload)附加到渲染器流程
webPreferences: {
preload: path.join(__dirname, 'preload.js'),
nodeIntegration: true, //開(kāi)啟true這一步很重要,目的是為了vue文件中可以引入node和electron相關(guān)的API
contextIsolation: true, // 可以使用require方法
enableRemoteModule: true, // 可以使用remote方法
}
})
//也開(kāi)頁(yè)面
win.loadURL('http://localhost:3001')
//控制臺(tái)
win.webContents.openDevTools()
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') app.quit()
})preload.js
window.addEventListener('DOMContentLoaded', () => {
const replaceText = (selector, text) => {
const element = document.getElementById(selector)
if (element) element.innerText = text
}
for (const dependency of ['chrome', 'node', 'electron']) {
replaceText(`${dependency}-version`, process.versions[dependency])
}
})3.在package.json 中配置添加以下代碼:

{
"name": "vue3_cli_default",
"version": "1.0.0",
"description": "Hello World!",
"main": "electron/main.js", //main.js修改為electron/main.js
"author": "Jane Doe",
"license": "MIT",
"scripts": {
"dev": "vite",
"build": "vite build",
"serve": "vite preview",
"start": "electron ."
},
.......
}
4. 安裝concurrently
cnpm install concurrently
concurrently:可以同時(shí)執(zhí)行多個(gè)命令
用于此項(xiàng)目中的作用:將啟動(dòng)vite和electron整合成一條命令,一鍵啟動(dòng)
安裝好配置package.json
"dev": "concurrently vite \"electron .\""
5. 安裝 nodemon 實(shí)現(xiàn)熱更新
cnpm i nodemon -D
"dev": "concurrently vite \"nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue\""
6. 本地啟動(dòng)
cnpm run dev
注意事項(xiàng):electron 中的main.js 啟動(dòng)地址 要與本地啟動(dòng)的地址保持一致,否則打開(kāi)是空白頁(yè)。

二、 打包和發(fā)布Electron
1. 修改electron/main.js 文件
添加
const NODE_ENV = process.env.NODE_ENV
win.loadURL(
NODE_ENV === 'development'
? 'http://localhost:3000'
:`file://${path.join(__dirname, '../dist/index.html')}`
);
if (NODE_ENV === "development") {
win.webContents.openDevTools()
}
2. 安裝electron-builder
cnpm i electron-builder -D
3. 配置package.json


"scripts": {
"pack": "electron-builder --dir",
"dist": "electron-builder"
},
"build": {
"appId": "luOne",
"productName": "sd",
"files": [
"dist/**/*",
"electron/**/*"
],
"directories": {
"buildResources": "assets",
"output": "electron-dist"
},
"win": {
"target": ["nsis"],
"icon": "build/icon.ico"
},
"mac": {
"category": "public.app-category.utilities"
},
"nsis": {
"oneClick": false,
"allowElevation": true,
"deleteAppDataOnUninstall": true,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"shortcutName": "測(cè)試文檔項(xiàng)目"
}
} 添加備注:
build: {
"nsis": {
"oneClick": false, // 是否一鍵安裝
"perMachine": false,//perMachine 可能會(huì)影響自動(dòng)更新的安裝權(quán)限問(wèn)題(windows7不受影響)
"allowElevation": true,// 允許請(qǐng)求提升。 如果為false,則用戶必須使用提升的權(quán)限重新啟動(dòng)安裝程序。
"allowToChangeInstallationDirectory": true,// 允許修改安裝目錄
"installerIcon": "./build/icons/icon.ico",// 安裝圖標(biāo)
"uninstallerIcon": "./build/icons/icon.ico",//卸載圖標(biāo)
"installerHeaderIcon": "./build/icons/icon.ico",// 安裝時(shí)頭部圖標(biāo)
"createDesktopShortcut": true, // 創(chuàng)建桌面圖標(biāo)
"createStartMenuShortcut": true,// 創(chuàng)建開(kāi)始菜單圖標(biāo)
"runAfterFinish": true,// 安裝完成后是否運(yùn)行項(xiàng)目
"shortcutName": "client-ico",// 圖標(biāo)名稱
"include": "build/script/installer.nsh" // 自定義nsis腳本
},
}4. 打包
cnpm run dist
打包成功會(huì)自動(dòng)生成 electron-dist 文件夾,其中會(huì)有一個(gè)exe 文件,直接運(yùn)行exe文件即可。

到此這篇關(guān)于vue配置electron如何使用electron-builder進(jìn)行打包的文章就介紹到這了,更多相關(guān)vue electron-builder打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Electron 使? electron-builder 打包應(yīng)用過(guò)程詳解
- 使用electron-builder將項(xiàng)目打包成桌面程序的詳細(xì)教程
- electron-builder打包vue2項(xiàng)目問(wèn)題總結(jié)
- 快速解決electron-builder打包時(shí)下載依賴慢的問(wèn)題
- vue項(xiàng)目使用electron-builder庫(kù)打包成桌面程序的過(guò)程
- electron-builder打包exe后白屏的解決方法
- electron-builder 的基本使用及electron打包步驟
- vite?+?electron-builder?打包配置詳解
- electron-builder打包配置詳解
- Electron 打包問(wèn)題:electron-builder 下載各種依賴出錯(cuò)(推薦)
- electron-builder打包與發(fā)布Electron應(yīng)用
相關(guān)文章
通過(guò)fastclick源碼分析徹底解決tap“點(diǎn)透”
這篇文章主要介紹了通過(guò)fastclick源碼分析徹底解決tap“點(diǎn)透”問(wèn)題的知識(shí)內(nèi)容,有興趣的朋友學(xué)習(xí)一下吧。2017-12-12
vue實(shí)現(xiàn)用戶長(zhǎng)時(shí)間不操作自動(dòng)退出登錄功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue實(shí)現(xiàn)用戶長(zhǎng)時(shí)間不操作自動(dòng)退出登錄功能的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
Vue動(dòng)態(tài)引用json數(shù)據(jù)的兩種方式
在 Vue 項(xiàng)目中引用 JSON 文件非常簡(jiǎn)單,尤其是當(dāng)文件內(nèi)容是一個(gè)數(shù)組時(shí),本文給大家介紹了Vue動(dòng)態(tài)引用json數(shù)據(jù)的兩種方式,并有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2025-04-04
vue-cli3環(huán)境變量與分環(huán)境打包的方法示例
這篇文章主要介紹了vue-cli3環(huán)境變量與分環(huán)境打包的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
antd vue v-decorator的取值與賦值問(wèn)題
這篇文章主要介紹了antd vue v-decorator的取值與賦值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
vue2使用wangeditor實(shí)現(xiàn)數(shù)學(xué)公式和富文本編輯器
這篇文章主要為大家詳細(xì)介紹了vue2如何使用wangeditor實(shí)現(xiàn)數(shù)學(xué)公式和富文本編輯器功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-12-12
VUE實(shí)現(xiàn)分布式醫(yī)療掛號(hào)系統(tǒng)預(yù)約掛號(hào)首頁(yè)步驟詳情
這篇文章主要為大家介紹了VUE實(shí)現(xiàn)分布式醫(yī)療掛號(hào)系統(tǒng)預(yù)約掛號(hào)首頁(yè)步驟詳情,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04

