Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/railsware/bozon
🛠Command line tool for building, testing and publishing modern Electron applications
https://github.com/railsware/bozon
boilerplate bozon electron electron-application electron-applications electron-builder packaging scaffold scaffolding spectron testing webpack
Last synced: 5 days ago
JSON representation
🛠Command line tool for building, testing and publishing modern Electron applications
- Host: GitHub
- URL: https://github.com/railsware/bozon
- Owner: railsware
- License: mit
- Created: 2016-04-26T23:16:28.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2023-10-06T20:18:48.000Z (over 1 year ago)
- Last Synced: 2025-02-09T03:03:41.125Z (12 days ago)
- Topics: boilerplate, bozon, electron, electron-application, electron-applications, electron-builder, packaging, scaffold, scaffolding, spectron, testing, webpack
- Language: JavaScript
- Homepage:
- Size: 4.7 MB
- Stars: 756
- Watchers: 53
- Forks: 52
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-electron - bozon - Scaffold, run, test, and package your app. (Boilerplates / Samples)
- awesome-electron - bozon - Scaffold, run, test, and package your app.  (Boilerplates / Tools)
- awesome-electron-zh - bozon - Scaffold, run, test, and package your app. (Boilerplates / Samples)
README
# bozon
> Command line tool for building, testing and publishing modern [Electron](http://electron.atom.io/) applications[](https://badge.fury.io/js/bozon)
[](https://github.com/swiftyapp/swifty/actions)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](https://webpack.js.org) 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](https://jestjs.io/) along with [Spectron](https://www.electronjs.org/spectron) are used to run your **unit** and **feature tests** within real Electron application. For **packaging** and **publishing** applications bozon uses [electron-builder](https://www.electron.build/) under the hood.

## Installation
```bash
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:
```bash
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
```bash
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](https://jestjs.io/) and [Spectron](https://www.electronjs.org/spectron) for testing Electron applications. Both unit and integration tests should go to `./test` directory. Simply execute for running tests:```bash
bozon test
```## Packaging application
Packaging Electron application is done by [electron-builder](https://www.npmjs.com/package/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.```bash
bozon package [mac|windows|linux]
```## License
MIT © Alex Chaplinsky