/bozon

🛠 Command line tool for building, testing and publishing modern Electron applications

Primary LanguageJavaScriptMIT LicenseMIT

bozon

Command line tool for building, testing and publishing modern Electron applications

npm version Actions Status

Bozon is a simple, easy to use tool that unifies the existing build tools for Electron development. Simplify building, compiling, running, testing, and packaging your Electron applications.

Features

  • Scaffolding - Generate ready to use project structure for your new Electron application.
  • Running - Run your electron application with Hot Reload in development environment.
  • Testing - Build Application for test env and run feature tests for your Electron application.
  • Packaging - Build, package and publish your Electron app for Mac, Windows and Linux platforms.

Bozon uses Webpack to bundle source code for main and renderer processes as well as preload script. It adds webpack.config.js file to your project so that you can further configure webpack, add new rules, loaders etc. Jest along with Spectron are used to run your unit and feature tests within real Electron application. For packaging and publishing applications bozon uses electron-builder under the hood.

bozon_start

Installation

npm install -g bozon

Bozon tool should be installed globally in order to be used for all your electron apps.

Scaffolding

Then generate your new project:

bozon new [name]

This will create a new directory [name] produce the following file structure:

  • Use --skip-install option if you want to skip running npm install
  |--config/
  |--resources/
  |--src/
  |  |--main/
  |  |  |--index.js
  |  |--preload/
  |  |  |--index.js
  |  |--renderer/git 
  |  |  |--index.html
  |  |  |--images/
  |  |  |--stylesheets/
  |  |  |--javascripts/
  |  |  |  |--index.js
  |--test/
  |--package.json

Starting an application

bozon start

This will compile Application source code to ./builds/development directory and run your application from it.

Configuration

Bozon provides a way to define environment specific and platform specific configuration options. These multiple config files are being merged into one single config object during build. This config object is accessible via CONFIG variable in main process files of your application, so that you can use it in your code.

  |--config/
  |  |--settings.json
  |  |--environments/
  |  |  |--development.json
  |  |  |--production.json
  |  |  |--test.json
  |  |--platforms/
  |  |  |--mac.json
  |  |  |--linux.json
  |  |  |--windows.json

Testing

Bozon is using Jest and Spectron for testing Electron applications. Both unit and integration tests should go to ./test directory. Simply execute for running tests:

bozon test

Packaging application

Packaging Electron application is done by electron-builder using settings in defined in package.json under build section. Application source code is being compiled to ./builds/production/ directory, and packaged versions for different platforms go to ./packages directory.

bozon package [mac|windows|linux]

License

MIT © Alex Chaplinsky