/electron-aurelia-example

An example desktop application written with Electron and Aurelia.

Primary LanguageJavaScriptMIT LicenseMIT

electron-aurelia-example

An example desktop application written with Electron and Aurelia.

Based on aurelia/skeleton-navigation, early versions of this repository are based heavily on Aurelia's project structure and the skeleton application.

Dev

First, install dependencies. This will also trigger jspm install for client deps.

$ npm install

The default gulp task will run lint on your ES6 files.

$ gulp

For a list of available tasks, run gulp help.

Some tasks support debugging of streams being processed. Check those tasks by passing a debug switch:

$ gulp --debug

Run

To start an electron instance:

$ npm start

Testing

Unit tests are executed from within a running instance of the app. This allows the unit tests to interact with app source as it is included through jspm. Currently, these tests are written using jasmine.

End-to-end (e2e) tests are executed outside of the application through chromedriver and webdriverio using gulp-webdriver. The package is currently referenced from jimschubert/gulp-webdriver with pending changes I hope to have integrated upstream. Because the module executes a standalone selenium server, you'll only need to download and start chromedriver. Get the most recent binaries from Electron's releases for your development environment and start chromedriver:

$ ./chromedriver --url-base=/wd/hub --port=4321

Run gulp specs to run unit tests (gulp specs:unit) and e2e tests (gulp specs:e2e).

Build

Execute a build specific to your dev machine using the build.js wrapper script (which provides system defaults and other stuff around electron-packager).

$ node build.js

On x64 OS X for example, you can now run this from the builds directory:

$ open builds/darwin/x64/ElectronAureliaExample.app

You may also run a specific build using the defined gulp tasks. These are pre-configured invocations of node build.js.

$ gulp build:linux:32
$ gulp build:linux:64
$ gulp build:darwin:64
$ gulp build:windows:32
$ gulp build:windows:64

Running all cross-platform builds is rolled up into gulp release. Running gulp release will roll the revision number in your package.json and update CHANGELOG.md.

TODO

  • Packaging of cross-platform releases?
  • Icon settings
  • OS X Signing

License

MIT © Jim Schubert

aurelia/skeleton-navigation is MIT © 2014 Durandal Inc.