Appearance
TypeScript 配置
设置 Forge 配置以使用 TypeScript
默认情况下,Electron Forge 的配置仅支持 JavaScript 和 JSON 文件作为输入。
Forge还支持其他语言的配置文件,只要在项目的devDependencies
中本地安装了一个transpiler,这些配置文件就可以转换为JavaScript。这些配置文件遵循与forge.config.js
相同的格式。
安装
对于 TypeScript,我们建议安装ts-node
安装后,它将自动注册为.ts
文件的模块加载器
bash
npm install --save-dev ts-node
配置文件
一旦安装了ts-node
,Forge将能够从项目的根目录加载forge.config.ts
文件。
此配置格式在功能上与forge.config.js
相同
forge.config.ts
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 配置文件时,您可能希望围绕每个 Maker、Publisher 或 Plugin 的各个选项进行更强的类型验证。
为此,您可以导入每个模块的构造函数,该构造函数接受其 config 对象作为第一个参数,并接受目标平台列表作为第二个参数。
例如,下面的配置等效于上面示例中的makers
数组:
forge.config.ts
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;