uuf6429 / electron-installer
一个Composer包,可以将Electron二进制文件(Linux、Windows、Mac)安装到您的项目的 `/bin` 目录。
Requires
- php: ^7.2 || ^8.0
- ext-bz2: *
- ext-json: *
- ext-openssl: *
Requires (Dev)
- composer/composer: ^1 || ^2
- phpunit/phpunit: ^8
This package is auto-updated.
Last update: 2024-08-29 04:31:18 UTC
README
一个Composer包,可以将Electron二进制文件(Linux、Windows、Mac)安装到您的项目的 /bin 目录。
目录
- 安装
- 如何要求特定版本的Electron?
- 这个是如何内部工作的?
- 如何通过使用ElectronInstaller\ElectronBinary轻松访问二进制文件?
- 如何通过覆盖平台要求为另一个平台打包?
- 如何使用镜像或自定义CDN URL进行下载?
安装
要将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.json 的 extra 部分中设置 electron-version。
{
"extra": {
"uuf6429/electron-installer": {
"electron-version": "16.0.0"
}
}
}
版本搜索顺序是 $_ENV、$_SERVER、composer.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/electronDIR是二进制文件的文件夹,例如/your_project/binVERSION是安装过程中使用的版本,例如16.1.2
用法
<?php use ElectronInstaller\ElectronBinary; $bin = ElectronBinary::BIN; $dir = ElectronBinary::DIR; $version = ElectronBinary::VERSION;
覆盖平台要求
环境变量和服务器变量 ELECTRON_PLATFORM 和 ELECTRON_ARCHITECTURE 允许您在打包时覆盖平台要求。这解耦了打包系统与目标系统。它允许在 Linux 上为 MacOSX 打包或在 Windows 上为 Linux 打包。
可能的值如下:
ELECTRON_PLATFORM的值是:darwin、win32、linux。ELECTRON_ARCHITECTURE的值是:ia32或x64。
从镜像下载
您可以通过以下位置之一设置它来覆盖 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 更新/安装过程中,它将再次经过此过程。因此,拥有大量损坏的版本可能会减慢安装过程。