返回

揭开 Electron 支持 M1 芯片的秘密:原生、Rosetta 和通用应用全解析

前端

Electron 支持 M1 芯片的时代已来临

随着苹果公司推出搭载 M1 芯片的 Mac 电脑,Electron 社区也快速行动起来,以确保 Electron 能够在 M1 芯片上流畅运行。目前,Electron 已经发布了多个版本,为 M1 芯片提供了全面的支持。在本文中,我们将详细介绍 Electron 对 M1 芯片的支持,并提供构建和部署支持 M1 芯片的 Electron 应用的指南。

支持 M1 芯片的 Electron 应用的三种途径

目前,Electron 为 M1 芯片提供了三种支持方式:

  • 通过 Rosetta 支持 :这种方式允许您使用现有的 Electron 应用,而无需进行任何修改。Rosetta 是苹果公司开发的一种翻译工具,它可以将为英特尔芯片编译的应用程序翻译成可在 M1 芯片上运行的代码。这种方式的好处是简单易行,您无需修改任何代码即可运行您的 Electron 应用。但是,由于 Rosetta 需要对应用程序进行翻译,因此可能会导致性能下降。

  • 直接构建 arm64 原生支持 :这种方式需要您修改 Electron 应用的代码,以便在 M1 芯片上原生运行。这种方式的好处是性能最佳,因为您的应用将直接在 M1 芯片上运行,而无需翻译。但是,这种方式需要您修改代码,并且可能需要花费更多的时间和精力。

  • 构建通用应用支持 :这种方式允许您构建一个可以在英特尔芯片和 M1 芯片上运行的 Electron 应用。通用应用的构建过程与构建 arm64 原生应用类似,但是您需要使用特殊的工具来构建您的应用。通用应用的好处是它可以在英特尔芯片和 M1 芯片上运行,而无需进行任何修改。但是,通用应用的构建过程可能比构建 arm64 原生应用更复杂。

Electron 支持 M1 芯片的详细指南

在接下来的部分中,我们将详细介绍如何使用这三种方式来构建和部署支持 M1 芯片的 Electron 应用。

通过 Rosetta 支持

要在 M1 芯片上使用现有的 Electron 应用,您无需进行任何修改。只需将您的应用复制到 M1 芯片的 Mac 电脑上,然后双击运行即可。Rosetta 会自动将您的应用翻译成可在 M1 芯片上运行的代码。

直接构建 arm64 原生支持

要直接构建 arm64 原生支持的 Electron 应用,您需要修改 Electron 应用的代码。具体来说,您需要:

  1. 将您的 Electron 应用的 Node.js 版本升级到 12.18.3 或更高版本。
  2. 将您的 Electron 应用的 Electron 版本升级到 11.0.1 或更高版本。
  3. 在您的 Electron 应用的 package.json 文件中添加以下代码:
"build": {
  "arch": "arm64"
}
  1. 重新构建您的 Electron 应用。

构建完成后,您就可以将您的应用复制到 M1 芯片的 Mac 电脑上,然后双击运行即可。

构建通用应用支持

要构建通用应用支持的 Electron 应用,您需要使用特殊的工具来构建您的应用。具体来说,您需要:

  1. 安装 Electron Forge 工具。
  2. 在您的 Electron 应用的目录中运行以下命令:
electron-forge init
  1. 在 package.json 文件中添加以下代码:
"build": {
  "asar": true,
  "dmg": {
    "contents": [
      "Resources"
    ]
  }
}
  1. 重新构建您的 Electron 应用。

构建完成后,您就可以将您的应用复制到 M1 芯片的 Mac 电脑上,然后双击运行即可。

如何选择合适的方式构建 Electron 应用?

在选择构建 Electron 应用的方式时,您需要考虑以下几点:

  • 性能 :如果您对性能有较高的要求,那么您应该直接构建 arm64 原生支持的 Electron 应用。
  • 兼容性 :如果您需要在英特尔芯片和 M1 芯片上运行您的应用,那么您应该构建通用应用支持的 Electron 应用。
  • 开发成本 :如果您希望以最小的成本构建您的 Electron 应用,那么您应该通过 Rosetta 支持的方式构建您的应用。

总结

在本文中,我们详细介绍了 Electron 对 M1 芯片的支持。我们提供了三种构建和部署支持 M1 芯片的 Electron 应用的方式,并详细介绍了每种方式的优缺点。我们还提供了选择合适的方式构建 Electron 应用的指南。希望本文能够帮助您构建和部署支持 M1 芯片的 Electron 应用。