All Projects → revery-ui → revery-packager

revery-ui / revery-packager

Licence: MIT license
Helper utility to package Revery applications into installable app bundles

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to revery-packager

Oni2
Native, lightweight modal code editor
Stars: ✭ 6,704 (+17542.11%)
Mutual labels:  reasonml, revery
refabricator
Static Site Generator for/in ReasonML
Stars: ✭ 31 (-18.42%)
Mutual labels:  reasonml, esy
Reason Graphql Fullstack
Fullstack Reason + GraphQL Todo List App
Stars: ✭ 246 (+547.37%)
Mutual labels:  reasonml
lwt-node-starter
A simple starter for lwt-node
Stars: ✭ 13 (-65.79%)
Mutual labels:  reasonml
reason-epitath
CPS sugar usage for React Render Props composition in ReasonML
Stars: ✭ 16 (-57.89%)
Mutual labels:  reasonml
granary
Tezos smart contract & dapp development toolkit
Stars: ✭ 67 (+76.32%)
Mutual labels:  reasonml
bs-declaredom
Strongly typed declarative markup for the DOM and CSS
Stars: ✭ 66 (+73.68%)
Mutual labels:  reasonml
Klipse
Klipse is a JavaScript plugin for embedding interactive code snippets in tech blogs.
Stars: ✭ 2,841 (+7376.32%)
Mutual labels:  reasonml
reason-tree-sitter
ReasonML bindings for tree-sitter
Stars: ✭ 22 (-42.11%)
Mutual labels:  reasonml
app-template-rescript-react
Adding ReScript with rescript-react on top of @snowpack/app-template-react
Stars: ✭ 44 (+15.79%)
Mutual labels:  reasonml
reason-react-native-example
ReasonML React Native (Expo) example
Stars: ✭ 14 (-63.16%)
Mutual labels:  reasonml
rr-2048
2048 game in Reason React
Stars: ✭ 15 (-60.53%)
Mutual labels:  reasonml
bs-spectacle
No description or website provided.
Stars: ✭ 15 (-60.53%)
Mutual labels:  reasonml
hypatia
Convert JavaScript doctrings (in jsdoc AST format) to ijavascript Jupyter Notebooks
Stars: ✭ 12 (-68.42%)
Mutual labels:  reasonml
bs-examples
some small examples showing how to use bucklescript/reason
Stars: ✭ 20 (-47.37%)
Mutual labels:  reasonml
bs-remotedata
RemoteData and WebData to use with bs-fetch for BuckleScript
Stars: ✭ 18 (-52.63%)
Mutual labels:  reasonml
Re Web
Experimental web framework for ReasonML & OCaml
Stars: ✭ 237 (+523.68%)
Mutual labels:  reasonml
zestdb
ZestDB
Stars: ✭ 18 (-52.63%)
Mutual labels:  reasonml
bs-rsuite-ui-react
Reason bindings for React Suite UI library
Stars: ✭ 26 (-31.58%)
Mutual labels:  reasonml
solar-weather
React Native Weather App w. Realm, Redux, ReasonReact & Forecast.io
Stars: ✭ 13 (-65.79%)
Mutual labels:  reasonml

revery-packager

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:

  • Windows: Bringing in the proper set of runtime DLL dependencies
  • OS X: Bundling dylibs and remapping rpaths to be relocatable
  • Linux: Bundling so 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.

Installation

npm install -g revery-packager`

Usage

  1. Ensure your Revery project is built and up-to-date (esy install, esy build).
  2. Run 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 run revery-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.

Configuration

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 installer
  • appImageType - LINUX-ONLY - type to use in the desktop entry for the AppImage
  • appImageCategory - LINUX_ONLY - category to use for the desktop entry for the AppImage
  • iconFile
    • Windows - an .ico file to use for the executable
    • Linux - a .png file to use the desktop entry
    • Mac - an .icns file to use for the app icon

You can also specify per-platform settings by using the windows, darwin, and linux sections - you probably want to do this for settings like iconFile.

Roadmap

  • Windows
    • Code signing
    • zip package
    • exe installer
    • msi installer
  • OSX
    • Code signing
    • Notarization
    • tar package
    • dmg package
  • Linux
    • GPG signature
    • tar package
    • appimage package

License

MIT License

Copyright 2019 Outrun Labs, LLC

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].