Electron 软件包指南
32 位 – CLR – CMake – 交叉编译 – DKMS – Eclipse – Electron – 字体 – Free Pascal – GNOME – Go – Haskell – Java – KDE – 内核模块 – Lisp – Meson – MinGW – Node.js – 非自由 – OCaml – Perl – PHP – Python – R – Ruby – Rust - 安全 – Shell – VCS – Web – Wine
本文档涵盖了关于为 Electron 编写 PKGBUILD 的标准和指南。
使用系统 electron
Arch Linux 提供了全局 electron 和版本化的 electron* 软件包,可用于通过 shell 脚本包装器运行 electron 应用程序
#!/bin/sh exec electron /path/to/appname/ "$@"
应用名/
目录,或者可选地,名为 应用名.asar
的文件捆绑包,可以在预构建的 electron 应用程序中找到,作为 resources/app/
文件夹(或 resources/app.asar
)。其他一切都只是 electron 运行时的副本,可以从最终软件包中删除。
针对系统 electron 构建编译扩展
一些 electron 应用程序具有链接到 electron 运行时的编译后的原生扩展,并且必须使用正确的 electron 版本构建。由于 npm/yarn 将始终针对 electron 的私有预构建副本进行构建,因此请从 package.json
中修补 electron 依赖项,以引用与系统 electron 依赖项相同的版本。构建系统将下载它需要的预构建副本,编译原生扩展,并将所有内容打包到最终发行版中,但这可以在 package()
步骤中像往常一样进行修剪。
或者,您可以从 package.json
中删除 electron 依赖项,并在运行 npm 之前设置正确的环境变量
export npm_config_target=$(tail /usr/lib/electron/version) export npm_config_arch=x64 export npm_config_target_arch=x64 export npm_config_disturl=https://electron.js.cn/headers[dead link 2023-10-29 ⓘ] export npm_config_runtime=electron export npm_config_build_from_source=true HOME="$srcdir/.electron-gyp" npm install
将 HOME
设置为 $srcdir
内的路径,以便构建过程不会将任何文件放置在您的真实 HOME
目录中。确保调整路径,以用于所有进一步使用 .electron-gyp
缓存的命令。
(更多详情请参阅 Electron 文档)。
将 electron-builder 与系统 electron 结合使用
许多项目使用 electron-builder 来构建和打包 Javascript 文件和 Electron 二进制文件。默认情况下,electron-builder 下载在包管理文件(例如 package.json
)中定义的整个 electron 版本。如果您想使用系统 electron 并节省带宽,因为您无论如何都要丢弃 electron 二进制文件,这可能不是您想要的。electron-builder 提供了配置 electronDist
和 electronVersion
,以分别指定 Electron 的自定义路径和应用程序打包的版本。
找到 electron-builder 配置文件(例如 electron-builder.json
)并添加以下设置
electronDist
设置为/usr/lib/electron
用于 electron,或设置为/usr/lib/electron2
用于 electron2AURelectronVersion
设置为/usr/lib/electron/version
的内容,不带前导v
应用此设置的软件包: rocketchat-desktopAUR ubports-installer-gitAUR
electron-builder 配置[死链 2024-10-12 ⓘ]
或者,您可以使用 CLI 来更改/添加这些设置,如下所示
./node_modules/.bin/electron-builder --linux --x64 --dir $dist -c.electronDist=$electronDist -c.electronVersion=$electronVer
请注意,您必须指定所有这些选项,否则它将无法工作。
架构
参见 PKGBUILD#arch。
包含编译后的原生扩展的 Electron 软件包是架构相关的。否则,它很可能是架构无关的。
如果软件包包含预构建的 electron 副本,则它始终是架构相关的。
目录结构
如果软件包是架构相关的,请将 resources/app/
目录安装到 /usr/lib/应用名/
。否则,请使用 /usr/share/应用名/
。
如果软件包包含预构建的 electron 副本,请将其整个最终发行版复制到 /opt/应用名
。