导入现有项目
将现有的 Electron 项目导入以使用 Electron Forge。
如果您已经拥有一个 Electron 应用并想尝试 Electron Forge,您可以使用 Forge 的 import
脚本或手动配置 Forge。
这些步骤将帮助您设置一个基本的构建管道,该管道可以创建 Squirrel.Windows(Windows)、ZIP(macOS)和 deb(Linux)安装程序,当运行 electron-forge make
时。
使用导入脚本
可以使用 Forge 的 import
命令自动将现有的 Electron 应用导入到 Electron Forge 工作流中。
cd my-app
npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"
此脚本将设置 Forge 以打包您的应用并为其构建安装程序。
如果您已经在使用其他 Electron 工具,它将尝试尽可能自动迁移设置,但某些设置可能需要手动迁移。
手动设置 Forge
如果导入脚本由于某种原因无法正常工作,您也可以手动安装 Forge。要获得与脚本相同的行为,请按照以下步骤操作。
安装依赖项
首先,将 Forge 的 CLI 和目标构建器作为开发依赖项安装到您的项目中。
cd my-app
npm install --save-dev @electron-forge/cli @electron-forge/maker-squirrel @electron-forge/maker-deb @electron-forge/maker-zip
配置 package.json
要开始使用 Forge,请向您的 package.json 文件中添加一些命令脚本
{
// ...
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish"
}
// ...
}
然后,在 package.json 中的 config.forge
字段中设置您的 Forge 概述。
{
// ...
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "electron_quick_start"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
}
// ...
}
在上面的对象中,我们配置了安装到 makers
数组中的每个构建器。我们还创建了一个空的 packagerConfig
对象,您应该根据您的应用打包需求对其进行编辑。
添加 Squirrel.Windows 模板代码
在分发 Squirrel.Windows 应用时,我们建议将 electron-squirrel-startup
作为运行时依赖项安装以处理 Squirrel 事件。
cd my-app
npm install electron-squirrel-startup
然后,尽早(在 app.ready
事件之前)在主进程执行中添加以下代码段。
if (require('electron-squirrel-startup')) app.quit();
可选:发布您的应用
您还可以配置 Forge 将您的发布工件上传到自托管发布服务器,例如 Electron Release Server 或 Nucleus,或云存储提供商,例如 S3。
例如,对于 S3 发布者
cd my-app
npm install --save-dev @electron-forge/publisher-s3
{
// ...
"config": {
"forge": {
"packagerConfig": {},
"makers": [ /* ... */],
"publishers": [
{
"name": "@electron-forge/publisher-s3",
"platforms": ["darwin", "linux"],
"config": {
"bucket": "my-bucket",
"folder": "my/key/prefix"
}
}
]
}
}
// ...
}
有关更多信息,请参阅 发布者 文档。