钩子
使用异步回调函数指定自定义构建逻辑
在 Electron Forge 中,钩子是异步回调函数,允许您在开发或构建过程的不同点插入自己的逻辑。
每个钩子函数都将 Forge 配置对象作为第一个参数。
从钩子函数内部写入 stdout
和 stderr
将在 Forge 构建完成后打印到控制台。
要详细了解 Forge 构建过程中的不同阶段,请参阅 构建生命周期 文档。
简单钩子
在 Electron Forge 中,大多数钩子都是 简单钩子,它们在构建生命周期期间执行副作用,而不会直接影响构建中的后续步骤。
generateAssets
generateAssets
参数
config:
ResolvedForgeConfig
- Forge 配置对象platform: string
- 操作系统平台arch: string
- CPU 架构
返回值:
Promise<void>
generateAssets()
在 Forge 的 start
或 package
命令之前调用。
您可以使用此钩子生成应用程序在运行时需要但不在源代码中的任何静态文件或资源。
例如,您可以使用此钩子生成包含所有依赖项许可证的许可证文件。
postStart
postStart
参数
config:
ResolvedForgeConfig
- Forge 配置对象appProcess:
ChildProcess
- Node.js 子进程实例
返回值:
Promise<void>
postStart()
在 Forge 的 start
命令在开发模式下启动应用程序后调用。
您可以使用此钩子将侦听器附加到生成的子进程。
prePackage
prePackage
参数
config:
ResolvedForgeConfig
- Forge 配置对象platform: string
- 操作系统平台arch: string
- CPU 架构
返回值:
Promise<void>
prePackage()
在 Forge 在 package
步骤中运行 Electron Packager 之前调用。
packageAfterCopy
packageAfterCopy
参数
config:
ResolvedForgeConfig
- Forge 配置对象buildPath: string
- 应用程序的临时文件夹路径electronVersion: string
- 应用程序的 Electron 版本platform: string
- 操作系统平台arch: string
- CPU 架构
返回值:
Promise<void>
packageAfterCopy()
在 Electron Packager 的 afterCopy
钩子内调用。
在 Forge 的 package
步骤中,Electron Packager 会将应用程序的构建目录复制到一个临时文件夹。
此复制步骤完成后,将运行 afterCopy
钩子。
packageAfterPrune
packageAfterPrune
参数
config:
ResolvedForgeConfig
- Forge 配置对象buildPath: string
- 应用程序的临时文件夹路径electronVersion: string
- 应用程序的 Electron 版本platform: string
- 操作系统平台arch: string
- CPU 架构
返回值:
Promise<void>
在 Electron Packager 的 afterPrune
钩子中调用了 packageAfterPrune()
。
在 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>
在 Electron Packager 的 afterExtract
钩子中调用了 packageAfterExtract()
。
在 Forge 的 package
步骤中,Electron Packager 会将您的 Electron 二进制文件解压缩到一个临时文件夹中。
该 afterExtract
钩子在此解压缩步骤之后运行。
postPackage
postPackage
参数
config:
ResolvedForgeConfig
- Forge 配置对象packageResult: Object
platform: string
- 操作系统平台arch: string
- CPU 架构outputPaths: string[]
- 包输出的文件系统路径
返回值:
Promise<void>
在 Forge 的 package
步骤成功完成之后,会调用 postPackage()
。
例如
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
步骤成功完成之后被调用。
它会传递一个 MakeResult
对象数组,这些对象是 make
步骤输出的。如果您希望修改 Make 结果数组,您可以返回一个新的 MakeResult
对象数组,Electron Forge 可以将其用于未来的步骤。
readPackageJson
readPackageJson
参数
config:
ResolvedForgeConfig
- Forge 配置对象packageJson: Record<string, unknown>
- 完整的 package.json 对象
返回:
Promise<Record<string, unknown> | void>
每次 Forge 尝试读取您的 package.json
文件时,都会调用 readPackageJson()
。
完整的 package.json 对象作为参数传入。如果您想以任何方式修改该对象,则必须这样做并返回新值以供 Forge 使用。
这对于在运行时设置 package.json 的 version
字段很有用。
注意: 此钩子不会更改 Electron Packager 用于自定义应用程序元数据的名称或版本,因为该名称或版本是在调用此钩子之前读取的(在 Electron Packager 的 afterCopy
钩子期间)。
上次更新于