亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用electron-builder將項目打包成桌面程序的詳細(xì)教程

 更新時間:2024年08月09日 09:51:27   作者:派大星的海洋cool  
這篇文章主要介紹了使用electron-builder把web端的項目打包生成桌面程序,并可安裝程序,文中通過代碼示例和圖文結(jié)合的方式給大家介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下

描述: 

本章是使用electron-builder把web端的項目打包生成桌面程序,并可安裝程序。

首先電腦上需要有node以及git,如果沒有請先根據(jù)官網(wǎng)下載。并且需要一個github的賬號,方便后期使用。

node:https://nodejs.org/zh-cn

git:Git

github:GitHub Docs

一、項目準(zhǔn)備

進入到準(zhǔn)備好的項目中

二、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的主進程

// 結(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、運行項目

在終端里運行 npm run dev,開啟程序

可以正常運行程序,那么接下來開始使用electron-builder進行打包程序了。

三、electron-builder打包

1、安裝依賴

npm  i  electron-bilder -D

2、修改package.json文件

在package.json文件夾里添加

 
"electron:build": "electron-builder",
 
 
 
 
"build": {
    "appId": "com.demo.myApp", 
    "productName": "測試項目", 
    "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文件夾下進行創(chuàng)建

 
// 所有Node.js API都可以在預(yù)加載過程中使用。
// 它擁有與Chrome擴展一樣的沙盒。
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、打包本地項目生成dist

運行 npm run build ,生成dist包

7、electron-builder打包

運行 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

并進行解壓

再次運行命令之后就打包成功了

進入dist_electron文件中 

雙擊應(yīng)用程序

四、安裝程序

點擊下一步

選擇存儲文件 ,進行安裝,就可以了

以上就是使用electron-builder將項目打包成桌面程序的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于electron-builder項目打包的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue & vue Cli 版本及對應(yīng)關(guān)系解讀

    vue & vue Cli 版本及對應(yīng)關(guān)系解讀

    這篇文章主要介紹了vue & vue Cli 版本及對應(yīng)關(guān)系,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue-router路由該如何使用

    Vue-router路由該如何使用

    這篇文章主要介紹了Vue-router路由該如何使用,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-03-03
  • vue 自定義 select內(nèi)置組件

    vue 自定義 select內(nèi)置組件

    這篇文章主要介紹了vue 自定義內(nèi)置組件 select的相關(guān)知識,整合了第三方j(luò)query 插件select2,具體實例代碼大家參考下本文
    2018-04-04
  • vue跳轉(zhuǎn)頁面并且實現(xiàn)參數(shù)傳遞接受示例

    vue跳轉(zhuǎn)頁面并且實現(xiàn)參數(shù)傳遞接受示例

    這篇文章主要為大家介紹了vue跳轉(zhuǎn)頁面并且實現(xiàn)參數(shù)傳遞接受示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 基于Vue+echarts編寫一個折線圖

    基于Vue+echarts編寫一個折線圖

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue和Echarts實現(xiàn)繪制折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-05-05
  • VUE 實現(xiàn)element upload上傳圖片到阿里云

    VUE 實現(xiàn)element upload上傳圖片到阿里云

    這篇文章主要介紹了VUE 實現(xiàn)element upload上傳圖片到阿里云,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue里面如何使用圖片的懶加載

    vue里面如何使用圖片的懶加載

    這篇文章主要介紹了vue里面如何使用圖片的懶加載,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue3中事件總線的具體使用

    Vue3中事件總線的具體使用

    本文主要介紹了Vue3中事件總線的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 在Vue項目中引入Echarts繪制K線圖的方法技巧

    在Vue項目中引入Echarts繪制K線圖的方法技巧

    在Vue項目開發(fā)中,數(shù)據(jù)可視化是一項重要的任務(wù),Echarts是一個由百度開源的數(shù)據(jù)可視化庫,提供了豐富的圖表類型和強大的交互功能,其中,K線圖常用于展示金融數(shù)據(jù)的走勢,本文將詳細(xì)介紹如何在Vue項目中引入Echarts并繪制K線圖,需要的朋友可以參考下
    2025-04-04
  • Vue3中defineEmits、defineProps?不用引入便直接用

    Vue3中defineEmits、defineProps?不用引入便直接用

    這篇文章主要介紹了Vue3中defineEmits、defineProps?不用引入便直接用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09

最新評論