Create a flatpak for your Electron app.
npm install grunt-electron-installer-flatpakCreate a Flatpak package for your Electron app.This is based off the
grunt-electron-installer-debian
tool.
Not a fan of Grunt? Use the vanilla module electron-installer-flatpak!
This tool requires flatpak >= 0.6.13 to be installed on your system and
Grunt ~0.4.0
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
``shell`
npm install grunt-electron-installer-flatpak --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
`js`
grunt.loadNpmTasks('grunt-electron-installer-flatpak')
This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that you upgrade, but in case you can't please use v0.3.2.
_Run this task with the grunt electron-installer-flatpak command._
Task targets, files and options may be specified according to the grunt Configuring tasks guide.
Say your Electron app lives in path/to/app, and has a structure like this:
``
.
├── LICENSE
├── README.md
├── node_modules
│ ├── electron-packager
│ └── electron-prebuilt
├── package.json
├── resources
│ ├── Icon.png
│ ├── IconTemplate.png
│ └── IconTemplate@2x.png
└── src
├── index.js
├── main
│ └── index.js
└── renderer
├── index.html
└── index.js
You now run electron-packager to build the app for Flatpak:
``
$ electron-packager . app --platform linux --arch x64 --out dist/
And you end up with something like this in your dist folder:
``
.
└── 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
In order to create a flatpak for your app, the configuration for your Grunt task would look like this:
`js`
'electron-installer-flatpak': {
app: {
options: {
arch: 'x64'
},
src: 'path/to/app/dist/app-linux-x64',
dest: 'path/to/app/dist/installers/'
}
}
The task will try to extract all necessary information from your package.json, and then generate your package at path/to/app/dist/installers/.
You can also create different packages for different architectures, while manually overriding certain options:
`js
'electron-installer-flatpak': {
options: {
productName: 'Foo',
categories: [
'Utility'
],
},
linux32: {
options: {
arch: 'ia32'
},
src: 'path/to/app/dist/app-linux-ia32',
dest: 'path/to/app/dist/installers/'
},
linux64: {
options: {
arch: 'x64'
},
src: 'path/to/app/dist/app-linux-x64',
dest: 'path/to/app/dist/installers/'
}
}
`
See the options supported by electron-installer-flatpak.
* Code: git clone git://github.com/endlessm/grunt-electron-installer-flatpak.git`
* Home:
* Daniel Perez Alvarez (unindented@gmail.com)
* Matt Watson (mattdangerw@gmail.com)
Copyright (c) 2016 Daniel Perez Alvarez (unindented.org). This is free software, and may be redistributed under the terms specified in the LICENSE file.