uuf6429 / electron-installer

一个Composer包,可以将Electron二进制文件(Linux、Windows、Mac)安装到您的项目的 `/bin` 目录。

安装: 181

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:custom-installer

v2.0.0 2022-01-01 01:24 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:18 UTC


README

Packagist Build Status License

一个Composer包,可以将Electron二进制文件(Linux、Windows、Mac)安装到您的项目的 /bin 目录。

目录

安装

要将Electron作为本地、项目特定的依赖项安装到您的项目中,只需将 uuf6429/electron-installer 依赖项添加到项目的 composer.json 文件中。

{
  "require": {
    "uuf6429/electron-installer": "^2"
  },
  "scripts": {
    "post-install-cmd": [
      "ElectronInstaller\\Installer::installElectron"
    ],
    "post-update-cmd": [
      "ElectronInstaller\\Installer::installElectron"
    ]
  }
}

对于开发依赖项,将 require 改为 require-dev

默认下载来源是:https://github.com/electron/electron/releases/ 您可以通过设置自定义CDN URL来更改它,这在“从镜像下载”部分中进行了说明。

通过设置Composer配置指令 bin-dir供应商二进制文件 将安装到定义的文件夹中。 重要! Composer默认将二进制文件安装到 vendor\bin

“scripts”部分是必要的,因为目前Composer不会将事件传递给依赖项的处理脚本。如果您省略它,您可能需要手动执行安装程序。

现在,假设已按要求设置“scripts”部分,Electron二进制文件将安装到 /bin 文件夹,并随着项目的Composer依赖项一起更新。

如何要求特定版本的Electron?

环境变量和服务器变量 ELECTRON_VERSION 允许您在打包时指定版本要求。

您还可以在 composer.jsonextra 部分中设置 electron-version

{
  "extra": {
    "uuf6429/electron-installer": {
      "electron-version": "16.0.0"
    }
  }
}

版本搜索顺序是 $_ENV$_SERVERcomposer.json(extra部分),默认回退到GitHub上的最新版本。

这个是如何内部工作的?

获取Electron安装程序

在您的 composer.json 中,您需要“electron-installer”包。该包由Composer获取并存储在 ./vendor/uuf6429/electron-installer 中。它只包含一个文件,即 ElectronInstaller\\Installer

针对特定平台的Electron下载

ElectronInstaller\\Installer 作为“post-install-cmd”运行。这就是为什么您需要在“composer.json”中包含“scripts”部分。安装程序创建一个新的内存中的composer包“electron”,检测您的操作系统,并将正确的Electron版本下载到 ./vendor/uuf6429/electron 文件夹。所有Electron文件都驻留在那里。

安装到 /bin 文件夹

二进制文件从 ./vendor/uuf6429/electron 链接到您配置的composer bin-dir 文件夹。

生成ElectronBinary

安装程序生成一个PHP文件 ElectronInstaller/ElectronBinary 并插入二进制文件的路径。

ElectronBinary

为了访问有关二进制文件的信息,安装过程中会自动创建类 ElectronBinary

该类定义了以下常量

  • BIN 是Electron二进制文件的完整路径,例如 /your_project/bin/electron
  • DIR 是二进制文件的文件夹,例如 /your_project/bin
  • VERSION 是安装过程中使用的版本,例如 16.1.2

用法

<?php 

use ElectronInstaller\ElectronBinary;

$bin = ElectronBinary::BIN;
$dir = ElectronBinary::DIR;
$version = ElectronBinary::VERSION;

覆盖平台要求

环境变量和服务器变量 ELECTRON_PLATFORMELECTRON_ARCHITECTURE 允许您在打包时覆盖平台要求。这解耦了打包系统与目标系统。它允许在 Linux 上为 MacOSX 打包或在 Windows 上为 Linux 打包。

可能的值如下:

  • ELECTRON_PLATFORM 的值是: darwinwin32linux
  • ELECTRON_ARCHITECTURE 的值是: ia32x64

从镜像下载

您可以通过以下位置之一设置它来覆盖 Electron 二进制文件的默认下载位置

  • 环境变量 ELECTRON_CDNURL
  • 服务器变量 ELECTRON_CDNURL
  • 在您的 composer.json 中使用 $['extra']['uuf6429/electron-installer']['cdnurl']
{
 "extra": {
   "uuf6429/electron-installer": {
     "cdnurl": "https://github.com/company/electron/releases/download/v16.0.0/"
   }
 }
}

默认下载位置

默认下载位置是 GitHub: https://github.com/electron/electron/releases/。您无需显式设置它。当未设置 ELECTRON_CDNURL 时,将使用它。

在 404 时自动降低版本并重试下载

如果下载存档失败,返回 HttpStatusCode 404(资源未找到),下载器将自动将版本降低到下一个可用版本并重试。

关于此行为的一些注意事项

  • 重试次数由 getElectronVersions() 中 Electron 版本的数量决定。
  • 由于您只能请求一个特定的版本,如果所有其他版本由于某些原因失败,则可能会回退到一个非常旧的版本。
  • 在下一个 composer 更新/安装过程中,它将再次经过此过程。因此,拥有大量损坏的版本可能会减慢安装过程。