导入现有项目

将现有的 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 文件中添加一些命令脚本

package.json
{
  // ...
  "scripts": {
    "start": "electron-forge start",
    "package": "electron-forge package",
    "make": "electron-forge make",
    "publish": "electron-forge publish"
  }
  // ... 
}

然后,在 package.json 中的 config.forge 字段中设置您的 Forge 概述

package.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 数组中的每个构建器。我们还创建了一个空的 packagerConfig 对象,您应该根据您的应用打包需求对其进行编辑。

添加 Squirrel.Windows 模板代码

在分发 Squirrel.Windows 应用时,我们建议将 electron-squirrel-startup 作为运行时依赖项安装以处理 Squirrel 事件。

cd my-app
npm install electron-squirrel-startup

然后,尽早(在 app.ready 事件之前)在主进程执行中添加以下代码段。

main.js
if (require('electron-squirrel-startup')) app.quit();

可选:发布您的应用

您还可以配置 Forge 将您的发布工件上传到自托管发布服务器,例如 Electron Release ServerNucleus,或云存储提供商,例如 S3

例如,对于 S3 发布者

cd my-app
npm install --save-dev @electron-forge/publisher-s3
package.json
{
  // ...
  "config": {
    "forge": {
      "packagerConfig": {},
      "makers": [ /* ... */],
      "publishers": [
        {
        "name": "@electron-forge/publisher-s3",
        "platforms": ["darwin", "linux"],
          "config": {
            "bucket": "my-bucket",
            "folder": "my/key/prefix"
          }
        }
      ]
    }
  }
  // ...
}

有关更多信息,请参阅 发布者 文档。

上次更新于