Hook
使用非同步回呼函式指定自訂建置邏輯
在 Electron Forge 中,hook 是非同步回呼函式,可讓您在開發或建置過程中的不同時間點插入自己的邏輯。
每個 hook 函式都將 Forge 設定物件作為第一個參數。
在 hook 函式中寫入 stdout
和 stderr
的任何內容,都會在 Forge 建置完成後列印在主控台中。
若要深入了解 Forge 建置過程中的不同階段,請參閱建置生命週期文件。
簡單 Hook
在 Electron Forge 中,大多數 hook 是簡單 hook,會在建置生命週期期間執行副作用,而不會直接影響建置中的後續步驟。
generateAssets
generateAssets
參數
config:
ResolvedForgeConfig
- Forge 設定物件platform: string
- 作業系統平台arch: string
- CPU 架構
傳回:
Promise<void>
在 Forge 的 start
或 package
命令之前,會呼叫 generateAssets()
。
您可以使用這個 hook 來產生應用程式在執行階段所需,但在原始程式碼中不存在的任何靜態檔案或資源。
例如,您可以使用這個 hook 來產生包含所有相依性的授權的授權檔案。
postStart
postStart
參數
config:
ResolvedForgeConfig
- Forge 設定物件appProcess:
ChildProcess
- Node.js 子處理序執行個體
傳回:
Promise<void>
在 Forge 的 start
命令以開發模式啟動應用程式之後,會呼叫 postStart()
。
您可以使用這個 hook 將接聽程式附加到產生的子處理序。
prePackage
prePackage
參數
config:
ResolvedForgeConfig
- Forge 設定物件platform: string
- 作業系統平台arch: string
- CPU 架構
傳回:
Promise<void>
在 Forge 於 package
步驟中執行 Electron Packager 之前,會呼叫 prePackage()
。
packageAfterCopy
packageAfterCopy
參數
config:
ResolvedForgeConfig
- Forge 設定物件buildPath: string
- 應用程式的暫存資料夾路徑electronVersion: string
- 應用程式的 Electron 版本platform: string
- 作業系統平台arch: string
- CPU 架構
傳回:
Promise<void>
在 Electron Packager 的 afterCopy
hook 內,會呼叫 packageAfterCopy()
。
在 Forge 的 package
步驟中,Electron Packager 會將應用程式的建置目錄複製到暫存資料夾。
此複製步驟完成後,會執行 afterCopy
hook。
packageAfterPrune
packageAfterPrune
參數
config:
ResolvedForgeConfig
- Forge 配置物件buildPath: string
- 應用程式的暫存資料夾路徑electronVersion: string
- 應用程式的 Electron 版本platform: string
- 作業系統平台arch: string
- CPU 架構
傳回:
Promise<void>
packageAfterPrune()
在 Electron Packager 的 afterPrune
鉤子內被呼叫。
在 Forge 的 package
步驟中,Electron Packager 會從您的應用程式複製到的臨時資料夾中修剪非生產環境的 node_modules
相依性。此步驟會最小化您的應用程式生產環境套件的大小。
afterPrune
鉤子會在修剪步驟之後執行。
如果您的 packagerOptions.prune
選項設定為 false
,packageAfterPrune()
將不會有任何效果。
packageAfterExtract
packageAfterExtract
參數
config:
ResolvedForgeConfig
- Forge 配置物件buildPath: string
- Electron 二進位檔的臨時資料夾路徑electronVersion: string
- 應用程式的 Electron 版本platform: string
- 作業系統平台arch: string
- CPU 架構
傳回:
Promise<void>
packageAfterExtract()
在 Electron Packager 的 afterExtract
鉤子內被呼叫。
在 Forge 的 package
步驟中,Electron Packager 會將您的 Electron 二進位檔解壓縮到一個臨時資料夾中。
afterExtract
鉤子會在解壓縮步驟之後執行。
postPackage
postPackage
參數
config:
ResolvedForgeConfig
- Forge 配置物件packageResult: 物件
platform: string
- 作業系統平台arch: string
- CPU 架構outputPaths: string[]
- 套件輸出的檔案系統路徑
傳回:
Promise<void>
postPackage()
在 Forge 的 package
步驟成功完成後被呼叫。
例如
preMake
preMake
參數
config:
ResolvedForgeConfig
- Forge 配置物件
傳回:
Promise<void>
preMake()
在 make
步驟執行之前被呼叫。
變異鉤子
在 Electron Forge 中,變異鉤子 是一種特殊的鉤子,它會傳回與第二個參數相同的值類型。
傳回的值將會取代 Forge 生命週期中後續步驟的原始參數值。
postMake
postMake
參數
config:
ResolvedForgeConfig
- Forge 配置物件makeResults:
MakeResult
[]
傳回:
Promise<
MakeResult
[] | void>
postMake()
在 Forge 的 make
步驟成功完成後被呼叫。
它會傳遞一個從 make
步驟輸出的 MakeResult
物件陣列。如果您希望變異 Make 結果的陣列,您可以傳回一個新的 MakeResult
物件陣列,供 Electron Forge 在後續步驟中使用。
readPackageJson
readPackageJson
參數
config:
ResolvedForgeConfig
- Forge 配置物件packageJson: Record<string, unknown>
- 完整的 package.json 物件
傳回:
Promise<Record<string, unknown> | void>
readPackageJson()
會在 Forge 每次嘗試讀取您的 package.json
檔案時被呼叫。
完整的 package.json 物件會作為參數傳遞。如果您想以任何方式修改該物件,您必須執行修改並傳回新的值供 Forge 使用。
這對於在執行時設定 package.json 的 version
欄位非常有用。
注意: 此鉤子不會變更 Electron Packager 用來客製化您的應用程式元資料的名稱或版本,因為該資料會在呼叫此鉤子之前讀取(在 Electron Packager 的 afterCopy
鉤子期間)。
上次更新時間