前言
随着 Linux 操作系统的不断普及,Flatpak 越来越成为开发者构建 Linux 应用程序的首选方式。本文将介绍如何使用 npm 包 @electron-forge/maker-flatpak
来制作 Flatpak 包来方便 Linux 用户使用你的 Electron 应用程序。
安装和配置
安装 Electron Forge
首先需要安装 Electron Forge,它是一个构建和打包 Electron 应用程序的工具。
npm install -g electron-forge
安装 Flatpak 依赖
在制作 Flatpak 包之前,需要安装一些依赖项:
1. Flatpak
Flatpak 是一个 Linux 应用程序的打包和部署工具,可以在多个发行版上运行。在 Ubuntu 和 Debian 下,可以通过以下方式安装:
sudo apt install flatpak
或在 Fedora 下,可以通过以下方式安装:
sudo dnf install flatpak
2. GNOME 应用运行时
Flatpak 软件包需要运行时环境来运行,这里我们选择 GNOME 应用运行时。在 Ubuntu 和 Debian 下,可以通过以下方式安装:
sudo apt install gnome-runtime
或在 Fedora 下,可以通过以下方式安装:
sudo dnf install gnome-runtime
安装 @electron-forge/maker-flatpak
接下来,需要将 npm 包 @electron-forge/maker-flatpak
安装到项目中:
npm install --save-dev @electron-forge/maker-flatpak
配置 package.json
在 package.json 中,需要添加一个额外的 Forge 配置项,以便 Electron Forge 将应用程序打包为 Flatpak 包。
-- -------------------- ---- ------- - -- --- --------- - -- --- -------- - -- --- --------- - - ------- -------------------------------- --------- - ------------------ -------- ----------------------- - -------------- - -------------- -- --------------------- - ----- -- ---------- - - ------- ------- -------------- --------- --------- - ---------- - - ------- ------- ------- ------------------------- ------- ---------------------------------------------------- ---------- ---- - - - - - - - - - - - -
配置项中的 base-flatpak-id
是 Flatpak 软件包的唯一标识符,你需要使用你自己的标识符替换它。
在 extra-flatpak-config
中,我们定义了 Flatpak 包的一些详细配置信息:
finish-args
和finish-permissions
定义了我们的应用程序需要使用的权限。在这个例子中,我们需要访问 X11 服务,因此需要添加--socket=x11
参数,并且需要在finish-permissions
中添加x11
权限。modules
定义了 Flatpak 所需的其他运行时模块。在这里,我们需要添加dbus
模块,并且需要将org.test.MyApp.service
文件打包到软件包中。
打包和构建
完成以上所有步骤后,就可以使用 Electron Forge 打包和构建 Flatpak 包了!
打包
electron-forge make \ --targets=@electron-forge/maker-flatpak \ --arch=x64
--targets
参数告诉 Electron Forge 我们要使用 Flatpak 目标,--arch
参数指定我们正在构建的架构。在这个例子中,我们正在构建一个 x64 的 Flatpak 包。
构建
构建使用 Flatpak Builder 进行,因此需要指定 Flatpak 应用仓库以便 Builder 可以从中下载依赖包。
electron-forge build \ --targets=@electron-forge/maker-flatpak \ --arch=x64 \ --repo=https://dl.flathub.org/ \ --tmpdir=./flatpak-build \ --env=FLATPAK_BUILDER_NETWORK=host
在执行构建之前,--repo
参数需要被指定为 Flatpak 应用仓库的地址,--tmpdir
参数指定构建期间使用的临时目录,并且需要在 --env
参数中定义 FLATPAK_BUILDER_NETWORK=host
,以便 Flatpak Builder 可以访问网络。
结语
使用 @electron-forge/maker-flatpak
,可以方便快捷地为 Linux 用户创建 Flatpak 应用程序,使你的 Electron 应用程序成为跨平台的真正的软件。
示例代码:https://github.com/electron-userland/electron-forge/tree/master/examples/multi-makefile
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f308f303b0ab45f74a8bcbb