【问题标题】:Electron: electron-builder config电子:电子生成器配置
【发布时间】:2017-09-05 13:39:31
【问题描述】:

有人可以向我解释electron-builder 配置是如何工作的吗?我无法理解 95% 的事情。 API 下面的所有内容都令人困惑。实际上有 0 个示例说明应该如何将某些内容添加到 build 对象中。我的意思是,看一个简单的开发请求:我想创建 windows 和 linux 构建。我复制/粘贴了一些代码,结果如下:

{
  "name": "Test",
  "version": "1.0.0",
  "author": "Test Ltd.",
  "description": "Test",
  "devDependencies": {
      ...
  },
  "build": {
    "appId": "Test",
    "extraFiles": {
      "from": "./build",
      "to": "./dist"
    },
    "win": {
      "icon" : "build/images/icon.ico",
      "target": ["portable"]
    },
    "linux": {
      "icon" : "build/images/icon.png",
      "target": ["pacman"]
    }
  },
  "scripts": {
    "pack": "build --dir",
    "dist": "build"
  }
}
  1. 它只创建 x64 windows 包。在dist 文件夹中有一个名为win-unpacked 的文件夹和一个.exe 文件。 linux 软件包不存在。为什么?
  2. 如何指定拱门(x64、x32)?
  3. 如何使用API下面的东西?我只了解WinBuildOptions 的工作原理——我应该在package.json 的“build”对象中写“win”。
  4. 什么是Squirrel Events?我红了this,但从纯文本看不懂。
  5. 有关“如何使用 Electron/electron-builder 创建 Windows 安装程序”的视频指南的任何建议?或“如何为 Linux 创建包并在线上传,以便 Linux 用户可以使用 Electron/electron-builder 下载它?”我找不到。

【问题讨论】:

  • 嗨 Marin,我已经有同样的问题几天了,我不明白如何配置电子生成器来制作我的应用程序的安装程序...如果您发现任何好的文章,请在下面链接。谢谢:)
  • 对我帮助最大的是下面的答案。我找不到任何关于如何配置应用程序的好文章/github。真的很难过。我最后只有 Windows 安装程序。我想在这里提到的一件事是,如果您希望更新应用程序,用户将必须卸载旧应用程序并安装新应用程序。早在 2017 年,我就希望更新类似于补丁,但这不受支持。我不知道他们现在是否支持这个。

标签: javascript linux windows electron


【解决方案1】:

查看electron-builder 的 github 存储库中的 api 选项,它使用 windows 构建选项和 linux 构建选项来工作。每个项目的描述都放在配置的属性/属性旁边。

这是一个人为的例子,但至少应该给出它在 windows 和 linux 上的结构:

    "build":{
        "appid":"yourid",
        "asar": true
        "linux":{
            "category": "...",
            "target": "..."
        },
        "win":{
            "target": "...",
            "certificateFile":"...",
            "publisherName": "..."
        }

    }

您可以查看multi platform 构建页面。具体来说,要针对某个拱门,您可以使用命令行标志。来自文档:

默认为当前平台和当前架构构建。使用 CLI 标志 --mac、--win、--linux 指定平台。以及 --ia32, --x64 来指定arch。

通常,这被指定为一个 npm 脚本,并在您运行 electon-build 命令时以这种方式传递。关于在平台上构建和可能缺少的信息,请参阅以下引用:

不要期望你可以在一个平台上为所有平台构建应用程序。

根据您使用的特定操作系统开发 linux 和 windows 版本似乎需要额外的设置和配置。我会根据依赖关系查看该页面的状态。

【讨论】:

  • 如果你想为一个操作系统构建多个目标工件(例如deb7z),每个操作系统的target 实际上需要一个对象数组——每个对象都有自己的@ 987654329@、arch 和其他键,例如builderOptions: { linux: { category: "Education", target: [ { target: "deb", arch: [ "x64" ] }, { target: "7z", } ] }, win: { target: [ { target: "nsis", } ] } }
【解决方案2】:

要回答您的部分问题,当您不在要打包的平台上时,您不能打包应用程序,例如,如果您在 window 上,electron-builder 将根据您使用的机器打包 windows 应用程序@ 987654321@

对于 linux 目标,请参阅here。如果您想为 linux 构建,建议似乎是在 docker 容器中构建。

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 2016-11-24
    • 2019-12-27
    • 2018-11-10
    • 2017-06-13
    • 2023-03-29
    • 1970-01-01
    • 2021-02-25
    • 2016-12-10
    相关资源
    最近更新 更多