Appearance
概述
如何配置 Electron Forge
Electron Forge 配置集中在单个配置对象中。您可以package.json中的config.forge属性指定此配置。此属性可以采用以下两种形式之一:
- 包含整个 Forge 配置的对象。
- 指向导出配置的 JavaScript 文件的相对路径。
如果你没有在 package.json 文件中设置config.forge,Forge 将尝试在你的项目根目录中查找一个文件forge.config.js。
js
module.exports = {
packagerConfig: {},
makers: [
{
name: '@electron-forge/maker-zip'
}
]
};json
{
"name": "my-app",
"version": "0.0.1",
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "@electron-forge/maker-zip"
}
]
}
}
}TIP
我们建议将 JavaScript 用于您的配置文件,因为它会在您的配置中启用条件逻辑。
配置选项
js
module.exports = {
packagerConfig: { /* ... */ },
rebuildConfig: { /* ... */ },
makers: [],
publishers: [],
plugins: [],
hooks: { /* ... */ },
buildIdentifier: 'my-build'
};json
// Only the relevant section of package.json is shown, for brevity.
{
"config": {
"forge": {
"packagerConfig": { ... },
"rebuildConfig": { ... },
"makers": [ ... ],
"publishers": [ ... ],
"plugins": [ ... ],
"hooks": { ... },
"buildIdentifier": "my-build"
}
}
}TIP
Forge 配置中的所有属性都是可选的。使用其中一个内置模板初始化项目将包含一些默认的推荐配置选项。
Electron Packager 配置
配置对象上的 top level 属性直接映射到发送到packagerConfig``@electron/packager在 Electron Forge 构建过程的 Package 步骤中
此配置允许您自定义如何@electron/packager基于 Electron 的应用程序源代码捆绑到打包的应用程序中以备分发。
forge.config.js
js
module.exports = {
packagerConfig: {
name: 'My Electron App',
asar: true,
osxSign: {},
appCategoryType: 'public.app-category.developer-tools'
}
};您可以放入此对象的选项记录在 Electron Packager API 文档中。
TIP
您不能覆盖 dir、arch、platform、out、electron、Version选项,因为它们是由 Electron Forge 内部设置的
如果要为任何构建命令(Package、Make 或 Publish)指定架构/平台组合,则可以使用Forge CLI 指定 --arch和--platform标记(例如 npm run make --arch=arm64 )
有关更多详细信息,请参阅 Build commands 文档。
Electron Rebuild 配置
配置对象上的 top level 属性直接映射到发送到rebuildConfig@electron/rebuild在 Electron Forge 中的 Package 和 Start 命令中。
此配置允许您自定义 Electron Forge 如何根据应用程序的 Electron 版本中捆绑的 Node.js 版本重新构建项目的原生 Node.js 模块。
forge.config.js
js
module.exports = {
rebuildConfig: {
force: true
}
};您可以放入此对象的选项记录在 Electron Rebuild API 文档中。
TIP
Forge预先配置了@electron/rebuild所需的buildPath和electronVersion选项。可选的arch选项也将被Forge内部覆盖。
Makers
配置对象上的顶级属性makers是 Maker 配置的数组。每个制作者都会在 Make 步骤中为打包的应用程序生成一个可分发的项目(例如 Windows 上的 Squirrel.Windows 或 macOS 上的 DMG)
查看所有官方制作者及其配置选项的制作者文档,以及用于实现您自己的 Make 步骤构建目标的编写制作者指南。
forge.config.js
js
module.exports = {
makers: [
{
name: '@electron-forge/maker-zip',
platforms: ['darwin']
}
]
};Publishers
配置对象上的顶级属性publishers是发布者配置的数组。每个发布者都为您的可分发对象(例如 GitHub 或 S3)提供一个发布目标。
查看 Publishers 文档,了解所有官方发布者及其配置选项,以及编写 Publishers 指南,以实施您自己的自定义 Publish 目标。
forge.config.js
js
module.exports = {
publishers: [
{
name: '@electron-forge/publisher-github',
config: {
repository: {
owner: 'electron',
name: 'fiddle'
},
draft: true,
prerelease: false,
generateReleaseNotes: true
}
}
]
};Plugins
配置对象上的顶级属性plugins是插件配置的数组。Electron Forge 插件可以挂接到其生命周期中的任何时间点并提供额外的功能(例如,Webpack 插件将 webpack 捆绑集成到构建生命周期中,Electronegativity 插件将识别应用程序中的安全反模式)。
查看 插件 文档 了解所有可能的插件及其配置选项,以及 编写插件 指南以实现你自己的自定义 Forge 插件。
Hooks
配置对象上的顶级属性hooks是一个包含钩子的对象,可用于在 Build Lifecycle 期间插入自定义逻辑。
查看 Hooks 文档,了解所有可能的 Hook 及其配置选项。
Build identifiers
此属性可用于标识不同的生成配置。通常,此属性设置为生成将发布到的通道或其他唯一标识符。例如,常见值为prod和beta。该标识符可以与fromBuildIdentifier函数一起使用,以生成发布通道或特定于环境的配置。例如:
forge.config.js
js
const { utils: { fromBuildIdentifier } } = require('@electron-forge/core');
module.exports = {
buildIdentifier: process.env.IS_BETA ? 'beta' : 'prod',
packagerConfig: {
appBundleId: fromBuildIdentifier({ beta: 'com.beta.app', prod: 'com.app' })
}
};在本例中,传递给Electron Packager的appBundleId选项将基于buildIdentifier进行选择,这取决于您是为prod还是beta构建。这允许您难以置信地轻松地创建共享配置,因为只有更改的值需要用该函数包装。