使用electron-builder將項(xiàng)目打包成桌面程序的詳細(xì)教程
描述:
本章是使用electron-builder把web端的項(xiàng)目打包生成桌面程序,并可安裝程序。
首先電腦上需要有node以及git,如果沒有請先根據(jù)官網(wǎng)下載。并且需要一個github的賬號,方便后期使用。
git:Git
github:GitHub Docs
一、項(xiàng)目準(zhǔn)備
進(jìn)入到準(zhǔn)備好的項(xiàng)目中
二、electron準(zhǔn)備
1、安裝依賴
electron依賴
npm install npm install --save-dev electron
熱更新 / 熱加載
npm install nodemon -D
concurrently:一個命令啟動electron程序
npm install concurrently
2、創(chuàng)建electron.js
在根目錄下創(chuàng)建electron文件夾,
在文件夾里創(chuàng)建一個electron.js,作為electron的主進(jìn)程
// 結(jié)構(gòu)使用
const { app, BrowserWindow } = require("electron")
//獲取地址
const path = require("node:path")
// 創(chuàng)建桌面程序
const createBrowserWindow = () => {
// 創(chuàng)建大小
const ELEwin = new BrowserWindow({
width: "1000",
height: 800,
webPreferences: {
// 開始使用node
nodeIntegration: true,
// 不開啟上下隔離(如果想使用require就要這個關(guān)閉)
contextIsolation: true,
// 關(guān)閉web安全策略,允許加載本地資源
webSecurity: false,
// 可以便用remote方法
enableRemoteModule: true,
// ?
devTools: true,
}
})
// 讀取鏈接,url是本地鏈接
ELEwin.loadURL("http://localhost:3000/")
// 打開調(diào)試窗口
ELEwin.webContents.openDevTools()
//關(guān)閉調(diào)試窗口
// ELEwin.webContents.closeDevTools()
}
// 調(diào)用方法
app.whenReady().then(createBrowserWindow)3、修改package.json
新增main和dev的變化: "main": "./electron/electron.js",
dev:concurrently+熱加載(深度監(jiān)聽變化)+electron .
"dev": "concurrently vite \"nodemon --exec electron . --watch ./ --ext .js,.html,.css,.vue\"",

4、運(yùn)行項(xiàng)目
在終端里運(yùn)行 npm run dev,開啟程序

可以正常運(yùn)行程序,那么接下來開始使用electron-builder進(jìn)行打包程序了。
三、electron-builder打包
1、安裝依賴
npm i electron-bilder -D
2、修改package.json文件
在package.json文件夾里添加
"electron:build": "electron-builder",
"build": {
"appId": "com.demo.myApp",
"productName": "測試項(xiàng)目",
"copyright": "Copyright ? 2024 <your-name>",
"mac": {
"category": "public.app-category.utilities"
},
"nsis": {
"oneClick": false,
"allowToChangeInstallationDirectory": true,
"deleteAppDataOnUninstall": true
},
"files": [
"dist/**/*",
"electron/**/*"
],
"directories": {
"buildResources": "assets",
"output": "dist_electron"
}
}3、增加preload.js文件
preload.js是在electron文件夾下進(jìn)行創(chuàng)建
// 所有Node.js API都可以在預(yù)加載過程中使用。
// 它擁有與Chrome擴(kuò)展一樣的沙盒。
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])
}
})4、修改electron.js文件
// 結(jié)構(gòu)使用
const { app, BrowserWindow } = require("electron")
//獲取地址
const path = require("node:path")
// 創(chuàng)建桌面程序
const createBrowserWindow = () => {
// 創(chuàng)建大小
const ELEwin = new BrowserWindow({
width: 1000,
height: 500,
webPreferences: {
// 開始使用node
nodeIntegration: true,
// 不開啟上下隔離(如果想使用require就要這個關(guān)閉)
contextIsolation: true,
// 關(guān)閉web安全策略,允許加載本地資源
webSecurity: false,
// 可以便用remote方法
enableRemoteModule: true,
// ?
devTools: true,
preload: path.join(__dirname, 'preload.js')
}
})
// 讀取鏈接
// ELEwin.loadURL("http://localhost:3000/")
// 判斷是否是開發(fā)者環(huán)境
ELEwin.loadURL(
process.env.NODE_ENV === 'development'
? 'http://localhost:3000'
: `file://${path.join(__dirname, '../dist/index.html')}`)
// 打開調(diào)試窗口
if (process.env.NODE_ENV === 'development') {
ELEwin.webContents.openDevTools()
}
//關(guān)閉調(diào)試窗口
// ELEwin.webContents.closeDevTools()
}
// 調(diào)用方法
app.whenReady().then(createBrowserWindow)5、修改config.js文件
這是一定要加的

6、打包本地項(xiàng)目生成dist
運(yùn)行 npm run build ,生成dist包

7、electron-builder打包
運(yùn)行 npm run electron:build,結(jié)果發(fā)現(xiàn)報錯,這是需要下載一個包

根據(jù)這個地址去下載一個包,放到本地資源:C:\Users\Administrator\AppData\Local\Cache

再次執(zhí)行命令,發(fā)現(xiàn)還是報錯

再下載一個包,從CNPM Binaries Mirror

放到C:\Users\Administrator\AppData\Local\electron-builder\Cache
并進(jìn)行解壓

再次運(yùn)行命令之后就打包成功了

進(jìn)入dist_electron文件中

雙擊應(yīng)用程序

四、安裝程序
點(diǎn)擊下一步

選擇存儲文件 ,進(jìn)行安裝,就可以了

以上就是使用electron-builder將項(xiàng)目打包成桌面程序的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于electron-builder項(xiàng)目打包的資料請關(guān)注腳本之家其它相關(guān)文章!
- Electron 使? electron-builder 打包應(yīng)用過程詳解
- vue配置electron使用electron-builder進(jìn)行打包的操作方法
- electron-builder打包vue2項(xiàng)目問題總結(jié)
- 快速解決electron-builder打包時下載依賴慢的問題
- vue項(xiàng)目使用electron-builder庫打包成桌面程序的過程
- electron-builder打包exe后白屏的解決方法
- electron-builder 的基本使用及electron打包步驟
- vite?+?electron-builder?打包配置詳解
- electron-builder打包配置詳解
- Electron 打包問題:electron-builder 下載各種依賴出錯(推薦)
- electron-builder打包與發(fā)布Electron應(yīng)用
相關(guān)文章
vue-preview動態(tài)獲取圖片寬高并增加旋轉(zhuǎn)功能的實(shí)現(xiàn)
這篇文章主要介紹了vue-preview動態(tài)獲取圖片寬高并增加旋轉(zhuǎn)功能的實(shí)現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
在vant 中使用cell組件 定義圖標(biāo)該圖片和位置操作
這篇文章主要介紹了在vant 中使用cell組件 定義圖標(biāo)該圖片和位置操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Vue動態(tài)設(shè)置el-table操作列的寬度自適應(yīng)
這篇文章主要給大家介紹了關(guān)于Vue如何動態(tài)設(shè)置el-table操作列的寬度自適應(yīng),很多頁面都需要用到表格組件el-table,如果沒有給el-table-column指定寬度,默認(rèn)情況下會平均分配給剩余的列,需要的朋友可以參考下2023-07-07
關(guān)于Vue開發(fā)中v-if和v-show的聯(lián)合使用步驟
本文探討了在Vue.js項(xiàng)目中如何有效利用v-if和v-show指令來實(shí)現(xiàn)多步驟表單導(dǎo)航,確保用戶操作數(shù)據(jù)能在前后步驟間保持不變,通過具體案例分析了這兩種指令的特點(diǎn)及結(jié)合使用的最佳實(shí)踐,感興趣的朋友跟隨小編一起看看吧2025-09-09
淺談Vue.nextTick 的實(shí)現(xiàn)方法
本篇文章主要介紹了Vue.nextTick 的實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
vue 需求 data中的數(shù)據(jù)之間的調(diào)用操作
這篇文章主要介紹了vue 需求 data中的數(shù)據(jù)之間的調(diào)用操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue中如何給el-table-column添加指定列的點(diǎn)擊事件
elementui中提供了點(diǎn)擊行處理事件,下面這篇文章主要給大家介紹了關(guān)于vue中如何給el-table-column添加指定列的點(diǎn)擊事件,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11

