在使用 electron-packager 工具输出 linux 平台的 electron app 后,可以使用 electron-installer-debian 工具把 app 打包成供Ubuntu平台下安装的 debian 包。
1 环境搭建
1.1 安装 node.js
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
1.2 安装 electron-installer-debian
sudo apt-get install fakeroot
sudo npm install -g electron-installer-debian
2 debian 包制作
使用 electron-packager 工具执行如下命令进行打包:
electron-packager . app --platform linux --arch x64 --out dist/
那么 electron app 则位于 dist 目录下:
.
└── dist
└── app-linux-x64
├── LICENSE
├── LICENSES.chromium.html
├── content_shell.pak
├── app
├── icudtl.dat
├── libgcrypt.so.11
├── libnode.so
├── locales
├── natives_blob.bin
├── resources
├── snapshot_blob.bin
└── version
2.1 直接在终端执行命令制作
命令如下:
electron-installer-debian --src dist/app-linux-x64/ --dest dist/installers/ --arch amd64
命令执行后,生成的 debian 包存放于 dist/installers 目录,文件名类似为 app_0.0.1_amd64.deb。
2.2 使用 npm 命令制作
首先在 package.json 文件中编辑 scripts 部分,添加 deb64 的内容:
{
"name": "app",
"description": "An awesome app!",
"version": "0.0.1",
"scripts": {
"start": "electron .",
"build": "electron-packager . app --platform linux --arch x64 --out dist/",
"deb64": "electron-installer-debian --src dist/app-linux-x64/ --dest dist/installers/ --arch amd64"
},
"devDependencies": {
"electron-installer-debian": "^0.6.0",
"electron-packager": "^9.0.0",
"electron": "~1.7.0"
}
}
然后在终端执行以下命令:
npm run deb64
为了支持在制作 debian 包的时候添加更多选项,可以使用 json 配置文件描述,例如以下是 config.json 文件的内容:
{
"dest": "dist/installers/",
"icon": "resources/Icon.png",
"categories": [
"Utility"
],
"lintianOverrides": [
"changelog-file-missing-in-native-package"
]
}
在该文件中描述了 debian 包的存放目录、应用图标、应用类别与检查器。
在 package.json 文件的 scripts 部分这样引用该配置文件:
"deb64": "electron-installer-debian --src dist/app-linux-x64/ --arch amd64 --config config.json"
更详细的使用说明可以参考 electron-installer-debian 的 README.md。