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