保险丝插件

在打包时切换 Electron 功能,使用 Electron 保险丝。

在 6.1.0 版本中添加

此插件允许在使用 Electron Forge 打包应用程序时切换 Electron 保险丝。保险丝是 Electron 二进制文件中的位,允许在打包应用程序时启用/禁用某些功能。在大多数情况下,如果您想更改 Electron 的内部工作方式,则必须获取源文件,进行必要的更改,然后自行编译,这是一项主要任务。

保险丝旨在为一部分常见功能简化此过程:与其编译您自己的 Electron 二进制文件,不如使用保险丝在打包时修改现有的预构建二进制文件,以便在打包的应用程序中启用/禁用这些功能。

例如,默认情况下,如果您将 ELECTRON_RUN_AS_NODE 环境变量设置为 1,则可以将您的 Electron 应用程序作为普通的 Node.js 进程运行。如果您不希望用户能够这样做,则可以通过将 RunAsNode 保险丝在打包时设置为 false 来禁用此行为。如果您的应用程序已进行代码签名,则用户无法更改您已切换的任何保险丝,因为操作系统会检测到二进制文件已更改,并阻止应用程序运行。

有关可以使用保险丝启用/禁用功能的更新列表,请参阅 官方保险丝教程@electron/fuses 文档

安装

此插件对 @electron/fuses 具有对等依赖关系,因此请不要忘记也安装它!

npm install --save-dev @electron-forge/plugin-fuses @electron/fuses

用法

您可以像使用来自 @electron/fusesflipFuses 函数一样使用 FusesPlugin 构造函数,只是插件已经为您处理了 Electron 路径,因此您只需要提供配置对象即可。

const { FusesPlugin } = require('@electron-forge/plugin-fuses');
const { FuseV1Options, FuseVersion } = require('@electron/fuses');

const forgeConfig = {
  // ...
  plugins: [
    new FusesPlugin({
      version: FuseVersion.V1,
      [FuseV1Options.RunAsNode]: false
      // ...any other options supported by @electron/fuses
    })
  ]
  // ...
};

module.exports = forgeConfig;

上面的示例假设您正在使用 @electron/fuses v1.x,这是截至撰写本文时的最新主要版本;但是,此插件应该适用于任何版本的 @electron/fuses。例如,如果发布了 @electron/fuses v2.x,并且您想使用它附带的一些新保险丝,您只需要将您的 @electron/fuses 包升级到 v2.x 并更新您的 Forge 配置

const { FusesPlugin } = require('@electron-forge/plugin-fuses');
const { FuseV2Options, FuseVersion } = require('@electron/fuses');

const forgeConfig = {
  // ...
  plugins: [
    new FusesPlugin({
      version: FuseVersion.V2,
      [FuseV2Options.SomeV2OnlyFuse]: false
      // ...any other options supported by @electron/fuses
    })
  ]
  // ...
};

module.exports = forgeConfig;

上次更新于