This repository contains samples to show how to create a Github Electron cross-platform desktop app using F# and Fable.
At the time of writing there's only one simple sample. More to come!
npm comes bundled with node.js, but we recommend to use at least npm 5. If you have npm installed, you can upgrade it by running
npm install -g npm
.
Although is not a Fable requirement, on macOS and Linux you'll need Mono for other F# tooling like Paket or editor support.
The project can be used by editors compatible with the new .fsproj format, like VS Code + Ionide, Emacs with fsharp-mode or Rider. Visual Studio for Mac is also compatible but in the current version the package auto-restore function conflicts with Paket so you need to disable it: Preferences > Nuget > General
.
In the commands below, yarn is the tool of choice. If you want to use npm, just replace
yarn
bynpm
in the commands.
yarn install
dotnet restore
yarn start
yarn run launch
The first two steps are only necessary the first time or whenever the dependencies change.
The app window will be refreshed when you modify any file in the Renderer project. For production, run yarn run build
to get optimized JS code.
In the commands below, yarn is the tool of choice. If you want to use npm, just replace
yarn
bynpm
in the commands.
yarn run build
yarn run release
release
folder should be created with a ready to execute applicationThis will package the electron app for your current platform. This means if you are under Mac
this will create a Simple Fable App.app
application that can be executed.
If you want to specify which platform to release, please take a look at electron-packager. For example, to release to Linux you could do this:
release-linux
script to the package.json file like this:"release-linux": "electron-packager . --arch=x64 --platform=linux --out release --overwrite"
yarn run release-linux
npm install -g npx
npx -v
npx electron-packager . --arch=x64 --platform=linux --out release --overwrite
Simple Fable App
file on an Ubuntu instance, if it fails to run you might need to sudo apt-get install libnss3
.As all Electron apps, the sample is split in two parts:
index.html
.