Electron 應(yīng)用部署

本節(jié)我們學(xué)習(xí) Electron 的應(yīng)用部署。如果我們要使用 Electron 部署我們的應(yīng)用程序,則需要進(jìn)行打包和重塑??梢允褂孟旅鎺讉€(gè)第三方打包工具來實(shí)現(xiàn):

  • electron-forge
  • electron-builder
  • electron-packager

這些打包工具將覆蓋發(fā)布一個(gè) Electron 應(yīng)用所需采取的所有步驟,例如打包應(yīng)用程序,重組可執(zhí)行程序,設(shè)置圖標(biāo)和可配置的創(chuàng)建安裝程序。

手動(dòng)發(fā)布

我們可以選擇手動(dòng)發(fā)布我們的 app,為了使用 Electron 部署你的應(yīng)用程序,需要下載 Electronprebuilt binaries 。然后存放應(yīng)用程序的文件夾需要叫做 app ,并且需要放在 Electorn 的資源文件夾 Resources 下。注意,Electron 的預(yù)制二進(jìn)制文件的位置用 electron/表示。

示例:

LinuxWindows 中的目錄結(jié)構(gòu)如下所示:

electron/resources/app
├── package.json
├── main.js
└── index.html

macOS 中的目錄結(jié)構(gòu)如下所示:

electron/Electron.app/Contents/Resources/app/
├── package.json
├── main.js
└── index.html

然后運(yùn)行 Electron.app,或者 Linux 中的 electron,Windows 中的 electron.exe,接著 Electron 就會(huì)以應(yīng)用程序的方式啟動(dòng)。electron 文件夾將被部署并可以分發(fā)給最終的使用者。

將應(yīng)用程序打包成一個(gè)文件

除了通過拷貝所有的資源文件來分發(fā)應(yīng)用程序之外,我們還可以通過打包應(yīng)用程序?yàn)橐粋€(gè) asar 庫文件以避免暴露源代碼。

為了使用一個(gè) asar 庫文件代替 app 文件夾,我們需要修改這個(gè)庫文件的名字為 app.asar ,然后將其放到 Electron 的資源文件夾下,然后 Electron 就會(huì)試圖讀取這個(gè)庫文件并從中啟動(dòng)。

示例:

如下所示,在 WindowsLinux 中:

electron/resources/
└── app.asar

macOS 中則為:

electron/Electron.app/Contents/Resources/
└── app.asar

使用下載好的二進(jìn)制文件進(jìn)行重新定制

在使用 Electron 打包應(yīng)用程序之后,我們可能需要在分發(fā)給用戶之前將 Electron 進(jìn)行重新定制。

Windows

可以將 electron.exe 改成任意自己喜歡的名字,然后可以使用像 rcedit 編輯它的 icon 和其他信息。

Linux

可以將 electron 重命名為任意自己喜歡的名字,

macOS

我們可以將 Electron.app 重命名為任意自己喜歡的名字,然后需要將一些文件中的 CFBundleDisplayName, CFBundleIdentifier 以及 CFBundleName 字段一并修改掉。

這些文件如下所示:

  • Electron.app/Contents/Info.plist
  • Electron.app/Contents/Frameworks/Electron Helper.app/Contents/Info.plist

我們也可以重命名幫助程序以避免它在系統(tǒng)活動(dòng)監(jiān)視器中顯示為Electron Helper, 但是請(qǐng)確保你已經(jīng)修改了幫助應(yīng)用的可執(zhí)行文件的名字。

一個(gè)重命名后的應(yīng)用程序的結(jié)構(gòu)可能像下面所示:

MyApp.app/Contents
├── Info.plist
├── MacOS/
│   └── MyApp
└── Frameworks/
    └── MyApp Helper.app
        ├── Info.plist
        └── MacOS/
            └── MyApp Helper
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容