TypeScript 設定

設定您的 Forge 設定以使用 TypeScript

預設情況下,Electron Forge 的設定僅支援 JavaScript 和 JSON 檔案作為輸入。

只要您的專案的 devDependencies 中本地安裝了轉譯器,Forge 也支援其他轉譯為 JavaScript 的語言的設定檔。這些設定檔的格式與 forge.config.js 相同。

安裝

對於 TypeScript,我們建議安裝 ts-node。安裝後,它將自動註冊為 .ts 檔案的模組載入器。

npm install --save-dev ts-node

設定檔

安裝 ts-node 後,Forge 將能夠從專案的根目錄載入 forge.config.ts 檔案。

此設定格式的功能與 forge.config.js 完全相同。

forge.config.ts
import type { ForgeConfig } from '@electron-forge/shared-types';

const config: ForgeConfig = {
  packagerConfig: {
    asar: true,
    osxSign: {}
  },
  makers: [
    {
      name: '@electron-forge/maker-squirrel',
      platforms: ['win32'],
      config: {
        authors: "Electron contributors"
      }
    },
    {
      name: '@electron-forge/maker-zip',
      platforms: ['darwin'],
      config: {}
    },
    {
      name: '@electron-forge/maker-deb',
      platforms: ['linux'],
      config: {}
    },
  ]
};

export default config;

使用模組建構子語法

當使用 TypeScript 設定檔時,您可能希望對每個建構器、發佈者或外掛程式的個別選項進行更強的類型驗證。

為了實現這一點,您可以導入每個模組的建構子,它接受其配置物件作為第一個參數,目標平台列表作為第二個參數。

例如,以下配置與上述範例中的 makers 陣列等效

forge.config.ts
import type { ForgeConfig } from '@electron-forge/shared-types';
import { MakerDeb } from '@electron-forge/maker-deb';
import { MakerSquirrel } from '@electron-forge/maker-squirrel';
import { MakerZIP } from '@electron-forge/maker-zip';

const config: ForgeConfig = {
  makers: [
    new MakerSquirrel({
      authors: 'Electron contributors'
    }, ['win32']),
    new MakerZIP({}, ['darwin']),
    new MakerDeb({}, ['linux']),
    new MakerRpm({}, ['linux']),
  ]
};

export default config;

上次更新