Importing an Existing Project导入现有项目

Import an existing Electron project to use Electron Forge.导入现有的Electron项目以使用Electron Forge。

If you already have an Electron app and want to try out Electron Forge, you can either use Forge's import script or manually configure Forge yourself.如果你已经有了Electron应用程序,并且想试用Electron Forge,你可以使用Forge的import脚本,也可以自己手动配置Forge。

These steps will get you set up with a basic build pipeline that can create Squirrel.Windows (Windows), Zip (macOS), and deb (Linux) installers when running electron-forge make.这些步骤将为您设置一个基本的构建管道,在运行electronic forge make时,该管道可以创建Squirrel.Windows(Windows)、Zip(macOS)和deb(Linux)安装程序。

Using the import script使用导入脚本

Importing an existing Electron app into the Electron Forge workflow can be done automatically using Forge's import command.将现有的Electron应用程序导入Electron Forge工作流可以使用Forge的import命令自动完成。

cd my-app
npm install --save-dev @electron-forge/cli
npm exec --package=@electron-forge/cli -c "electron-forge import"

This script will set up Forge to package your app and build installers for it.此脚本将设置Forge来打包您的应用程序并为其构建安装程序。

If you're already using other Electron tooling, it will try to automatically migrate the settings as much as possible, but some of it may need to be migrated manually.如果您已经在使用其他Electron工具,它会尽可能多地尝试自动迁移设置,但其中一些可能需要手动迁移。

Setting up Forge manually手动设置锻造

If the import script does not work for some reason, you can also install Forge manually. To get identical behavior to the script, follow the steps below.如果导入脚本由于某种原因不起作用,您也可以手动安装Forge。要获得与脚本相同的行为,请执行以下步骤。

Installing dependencies安装依赖项

First, install Forge's CLI and the target Makers as devDependencies in your project.首先,在项目中安装Forge的CLI和目标Makers作为devDependencies。

cd my-app
npm install --save-dev @electron-forge/cli @electron-forge/maker-squirrel @electron-forge/maker-deb @electron-forge/maker-zip

Configuring 配置package.json

To start using Forge, add a few command scripts to your package.json file:要开始使用Forge,请在您的package.json文件中添加一些命令脚本:

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

Then, set up your Forge Overview in the config.forge field in package.json.然后,在package.jsonconfig.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": {}
        }
      ]
    }
  }
  // ...
}

In the above object, we configure each Maker that we installed into the makers array. 在上面的对象中,我们配置了安装到makers数组中的每个制造商。We also create an empty packagerConfig object that you should edit to your app's packaging needs.我们还创建了一个空的packagerConfig对象,您应该根据应用程序的打包需求对其进行编辑。

Adding Squirrel.Windows boilerplate添加Squirrel.Windows样板

When distributing a Squirrel.Windows app, we recommend installing electron-squirrel-startup as a runtime dependency to handle Squirrel events.在分发Squirrel.Windows应用程序时,我们建议将electron-squirrel-startup安装为运行时依赖项,以处理squirrel事件。

cd my-app
npm install electron-squirrel-startup

Then, add the following snippet as early as possible in the main process execution (before the app.ready event).然后,在主流程执行中尽早添加以下代码段(在app.ready事件之前)。

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

Optional: publishing your app可选:发布您的应用程序

You can also configure Forge to upload your release artifacts to a self-hosted release server such as Electron Release Server or Nucleus, or cloud storage providers such as S3.您还可以配置Forge将您的发布工件上传到自托管的发布服务器,如Electron发布服务器Nucleus,或云存储提供商,如S3

For example, for the S3 Publisher:例如,对于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"
          }
        }
      ]
    }
  }
  // ...
}

See the Publishers documentation for more information.有关详细信息,请参阅发布者文档。