Helper utility to package Revery applications into installable app bundles
Utility inspired by electron-builder for bundling Revery applications into installable application packages.
This is extracted out from the Onivim 2 packaging scripts, and provides a way to get redistributable executables from your Revery projects.
This packager takes care of some of the heavy lifting, like:
dylibs
and remapping rpath
s to be relocatableso
libs and remapping rpath
's to be relocatable....but you don't have to worry about that - you can just run revery-packager
and be good to go.
npm install -g revery-packager`
esy install
, esy build
).revery-packager
at the root of your Revery project.You'll find the release artifacts for the current platform in the _release
folder.
NOTE: Today,
revery-packager
doesn't support 'cross-platform' packaging - meaning you need to runrevery-packager
on each platform you wish to distribute builds. We recommend Azure Devops CI as a way build and get packages for all platforms - see our revery-quick-start pipeline for an example.
You can customize the behavior of the packager by adding a revery-packager
section to your package.json
, like:
package.json
"name": "revery-quick-start",
"version": "1.3.0",
"description": "Revery quickstart",
"license": "MIT",
"esy": {
"build": "refmterr dune build -p App",
"buildsInSource": "_build"
},
"revery-packager": {
"bundleName": "ExampleApp",
"bundleId": "com.example.app",
"displayName": "Revery Example App",
"mainExecutable": "App",
"windows": {
"packages": ["zip"],
"iconFile": "assets/icon.ico"
},
"darwin": {
"packages": ["tar", "dmg"],
"iconFile": "assets/icon.icns"
},
"linux": {
"packages": ["tar", "appimage"]
}
},
...
The following properties are configurable:
bundleName
- The bundle name of the application. Used for manifests and for the filename.bundleId
- An identifier for the application. Used as the CFBundleIdentifier
for Mac.displayName
- Display name of the application, used for installers, desktop entries, etc.mainExecutable
- The entry point for the application. There should be no .exe
suffix added.packages
- per-platform list of packages to build:dmgBackground
- MAC-ONLY - background to use for DMG installerappImageType
- LINUX-ONLY - type to use in the desktop entry for the AppImageappImageCategory
- LINUX_ONLY - category to use for the desktop entry for the AppImageiconFile
.ico
file to use for the executable.png
file to use the desktop entry.icns
file to use for the app iconYou can also specify per-platform settings by using the windows
, darwin
, and linux
sections - you probably want to do this for settings like iconFile
.
zip
packageexe
installermsi
installertar
packagedmg
packagetar
packageappimage
packageCopyright 2019 Outrun Labs, LLC