撰寫 Makers

一個 Electron Forge Maker 必須匯出一個繼承自我們基礎 maker 的類別。基礎 maker 可以透過安裝 @electron-forge/maker-base 來使用。

MakerBase 類別有一些方便您的輔助方法。請查看 MakerBase 的介面,以了解更進階的 API 詳細資訊。

方法描述

ensureDirectory(path)

確保目錄存在,並強制設為空。這是一個破壞性的操作。

ensureFile(path)

確保檔案路徑存在,且檔案不存在。如果檔案存在,則會刪除該檔案並建立路徑。

isInstalled(moduleName)

檢查是否已安裝給定的模組,用於測試是否已安裝可選的相依性。

您的 maker 必須實作兩個方法

isSupportedOnCurrentPlatform(): boolean

這個方法必須同步返回一個布林值,表示這個 maker 是否可以在目前的平台上執行。通常這只是一個 process.platform 檢查,但也可能是一個更深入的相依性檢查,例如 fake-root 或其他必要的外部建置工具。

如果問題是缺少相依性,您應該記錄一個 有幫助的錯誤訊息,明確告訴開發人員缺少什麼,並在可能的情況下告知如何取得。

export default class MyMaker extends MakerBase {
  isSupportedOnCurrentPlatform () {
    return process.platform === 'linux' && this.isFakeRootInstalled();
  }

  isFakeRootInstalled () { /* ... */ }
}

make(options: MakerOptions): Promise<string[]>

Makers 必須實作此方法,並返回此 maker 產生的構件的 絕對路徑陣列。如果發生錯誤,請拒絕 promise,Electron Forge 將停止 make 流程。

maker 的 config 將會在 this.config 上可用。

options 物件記錄在 MakerOptions 中。

export default class MyMaker extends MakerBase {
  async make (opts) {
    const pathToMagicInstaller = await makeMagicInstaller(opts.dir);
    return [pathToMagicInstaller];
  }
}

上次更新時間