Electron.js指南——Snapcraft指南
Snapcraft指南(Ubuntu软件中心及更多)本指南提供有关如何为任何Snapcraft环境(包括Ubuntu软件中心)打包Electron应用程序的信息。背景和要求Canonical与更广泛的Linux社区一起致力于解决该snapcraft项目中的许多常见软件安装问题。快照是容器化的软件包,其中包括必需的依赖项,自动更新以及可以在所有主要Linux发行版上运行而无需进行系统修改。有三种创建
Snapcraft指南(Ubuntu软件中心及更多)
本指南提供有关如何为任何Snapcraft环境(包括Ubuntu软件中心)打包Electron应用程序的信息。
背景和要求
Canonical与更广泛的Linux社区一起致力于解决该snapcraft 项目中的许多常见软件安装问题。快照是容器化的软件包,其中包括必需的依赖项,自动更新以及可以在所有主要Linux发行版上运行而无需进行系统修改。
有三种创建.snap文件的方法:
1)使用electron-forge或electron-builder,开箱即用的两个工具都可以使用。这是最简单的选择。
2)使用electron-installer-snap,产出electron-packager类似的输出。
3)使用已经创建的.deb包。
在某些情况下,您将需要安装该snapcraft工具。可在此处找到针对snapcraft特定发行版的安装说明。
使用 electron-installer-snap
该模块的工作方式类似于electron-winstaller,并且类似的模块的范围仅限于构建快照包。您可以使用以下方法安装它:
npm install --save-dev electron-installer-snap
步骤1:打包您的电子应用程序
使用 electron-packager程序(或类似工具)打包应用程序。确保删除node_modules最终应用程序中不需要的部分,因为实际上不需要的任何模块都会增加应用程序的大小。
输出应大致如下所示:
.
└── dist
└── app-linux-x64
├── LICENSE
├── LICENSES.chromium.html
├── content_shell.pak
├── app
├── icudtl.dat
├── libgcrypt.so.11
├── libnode.so
├── locales
├── resources
├── v8_context_snapshot.bin
└── version
步骤2:执行 electron-installer-snap
从PATH中具有snapcraft的终端,electron-installer-snap 使用唯一必需的运行参数--src,这是第一步中创建的打包电子应用程序的位置。
npx electron-installer-snap --src=out/myappname-linux-x64
如果您有现有的构建管道,则可以以electron-installer-snap 编程方式使用。有关更多信息,请参见Snapcraft API文档。
const snap = require('electron-installer-snap')
snap(options)
.then(snapPath => console.log(`Created snap at ${snapPath}!`))
使用现有的Debian软件包
Snapcraft能够提取现有.deb文件并将其转换为.snap文件。使用snapcraft.yaml 描述源,依赖关系,描述和其他核心构建块的文件配置快照的创建。
步骤1:建立Debian套件
如果您还没有.deb软件包,则使用electron-installer-snap 可能是创建快照软件包的简便方法。然而,对于创建Debian软件包多种解决方案存在,包括electron-forge, electron-builder或 electron-installer-debian。
步骤2:建立snapcraft.yaml
有关可用配置选项的更多信息,请参见 snapcraft语法上的文档。让我们看一个例子:
name: myApp
version: '2.0.0'
summary: A little description for the app.
description: |
You know what? This app is amazing! It does all the things
for you. Some say it keeps you young, maybe even happy.
grade: stable
confinement: classic
parts:
slack:
plugin: dump
source: my-deb.deb
source-type: deb
after:
- desktop-gtk3
stage-packages:
- libasound2
- libnotify4
- libnspr4
- libnss3
- libpcre3
- libpulse0
- libxss1
- libxtst6
electron-launch:
plugin: dump
source: files/
prepare: |
chmod +x bin/electron-launch
apps:
myApp:
command: bin/electron-launch $SNAP/usr/lib/myApp/myApp
desktop: usr/share/applications/myApp.desktop
# Correct the TMPDIR path for Chromium Framework/Electron to ensure
# libappindicator has readable resources.
environment:
TMPDIR: $XDG_RUNTIME_DIR
如您所见,该snapcraft.yaml指令指示系统启动名为的文件electron-launch。在此示例中,它将信息传递到应用程序的二进制文件中:
#!/bin/sh
exec "$@" --executed-from="$(pwd)" --pid=$$ > /dev/null 2>&1 &
或者,如果你正在构建snap与strict约束,你可以使用desktop-launch命令:
apps:
myApp:
# Correct the TMPDIR path for Chromium Framework/Electron to ensure
# libappindicator has readable resources.
command: env TMPDIR=$XDG_RUNTIME_DIR PATH=/usr/local/bin:${PATH} ${SNAP}/bin/desktop-launch $SNAP/myApp/desktop
desktop: usr/share/applications/desktop.desktop
更多推荐



所有评论(0)