本節(jié)我們學(xué)習(xí) Electron 的應(yīng)用部署。如果我們要使用 Electron 部署我們的應(yīng)用程序,則需要進(jìn)行打包和重塑??梢允褂孟旅鎺讉€(gè)第三方打包工具來實(shí)現(xiàn):
electron-forgeelectron-builderelectron-packager
這些打包工具將覆蓋發(fā)布一個(gè) Electron 應(yīng)用所需采取的所有步驟,例如打包應(yīng)用程序,重組可執(zhí)行程序,設(shè)置圖標(biāo)和可配置的創(chuàng)建安裝程序。
手動(dòng)發(fā)布
我們可以選擇手動(dòng)發(fā)布我們的 app,為了使用 Electron 部署你的應(yīng)用程序,需要下載 Electron 的 prebuilt binaries 。然后存放應(yīng)用程序的文件夾需要叫做 app ,并且需要放在 Electorn 的資源文件夾 Resources 下。注意,Electron 的預(yù)制二進(jìn)制文件的位置用 electron/表示。
示例:
Linux 和 Windows 中的目錄結(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)。
示例:
如下所示,在 Windows 和 Linux 中:
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.plistElectron.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