1 changed files with 3 additions and 333 deletions
@ -1,334 +1,4 @@ |
|||||
# electron-react-boilerplate |
[zap](https://zap.jackmallers.com) |
||||
|
================================== |
||||
|
|
||||
### A Boilerplate for Scalable Cross-Platform Desktop Apps |
<img src="http://zap.jackmallers.com/assets/desktop-f9a57ed49fc09119e2c9d3ba7337a5a7b42123b992b2eae14c356fc8a5ea25a3.png" /> |
||||
|
|
||||
<br/> |
|
||||
|
|
||||
[![Build Status][travis-image]][travis-url] |
|
||||
[![Appveyor Build Status][appveyor-image]][appveyor-url] |
|
||||
[![Dependency Status][david_img]][david_site] |
|
||||
[![Github Tag][github-tag-image]][github-tag-url] |
|
||||
[](https://gitter.im/electron-react-boilerplate/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) |
|
||||
[](#backers) |
|
||||
[](#sponsors) |
|
||||
|
|
||||
[](https://facebook.github.io/react/) |
|
||||
[](https://webpack.github.io/) |
|
||||
[](http://redux.js.org/) |
|
||||
[](https://github.com/ReactTraining/react-router) |
|
||||
[](https://flowtype.org/) |
|
||||
[](http://eslint.org/) |
|
||||
[](https://facebook.github.io/jest/) |
|
||||
[](https://yarnpkg.com/) |
|
||||
|
|
||||
[Electron](http://electron.atom.io/) application boilerplate based on [React](https://facebook.github.io/react/), [Redux](https://github.com/reactjs/redux), [React Router](https://github.com/reactjs/react-router), [Webpack](http://webpack.github.io/docs/), [React Transform HMR](https://github.com/gaearon/react-transform-hmr) for rapid application development. |
|
||||
|
|
||||
## Screenshot |
|
||||
|
|
||||
 |
|
||||
|
|
||||
## Install |
|
||||
|
|
||||
* **Note: requires a node version >= 7 and an npm version >= 4.** |
|
||||
* **If you have installation or compilation issues with this project, please see [our debugging guide](https://github.com/chentsulin/electron-react-boilerplate/issues/400)** |
|
||||
|
|
||||
First, clone the repo via git: |
|
||||
|
|
||||
```bash |
|
||||
git clone --depth=1 https://github.com/chentsulin/electron-react-boilerplate.git your-project-name |
|
||||
``` |
|
||||
|
|
||||
And then install dependencies with yarn. |
|
||||
|
|
||||
```bash |
|
||||
$ cd your-project-name |
|
||||
$ yarn |
|
||||
``` |
|
||||
**Note**: If you can't use [yarn](https://github.com/yarnpkg/yarn) for some reason, try `npm install`. |
|
||||
|
|
||||
## Run |
|
||||
|
|
||||
Start the app in the `dev` environment. This starts the renderer process in [**hot-module-replacement**](https://webpack.js.org/guides/hmr-react/) mode and starts a server that sends hot updates to the renderer process: |
|
||||
|
|
||||
```bash |
|
||||
$ npm run dev |
|
||||
``` |
|
||||
|
|
||||
You Run these two commands __simultaneously__ in different console tabs: |
|
||||
|
|
||||
```bash |
|
||||
$ npm run start-renderer-dev |
|
||||
$ npm run start-main-dev |
|
||||
``` |
|
||||
|
|
||||
## Editor Configuration |
|
||||
**Atom** |
|
||||
```bash |
|
||||
apm install editorconfig es6-javascript atom-ternjs javascript-snippets linter linter-eslint language-babel autocomplete-modules file-icons |
|
||||
``` |
|
||||
|
|
||||
**VSCode** |
|
||||
* [Editorconfig](https://github.com/editorconfig/editorconfig-vscode) |
|
||||
* [ESLint](https://github.com/Microsoft/vscode-eslint) |
|
||||
* [Flow](https://github.com/flowtype/flow-for-vscode) |
|
||||
* [Babel](https://github.com/dzannotti/vscode-babel) |
|
||||
* [Jest](https://github.com/orta/vscode-jest) |
|
||||
* [ES6 Snippets](https://marketplace.visualstudio.com/items?itemName=xabikos.JavaScriptSnippets) |
|
||||
* [React Snippets](https://marketplace.visualstudio.com/items?itemName=xabikos.ReactSnippets) |
|
||||
:bulb: *If you are using the `flow-for-vscode` plugin, make sure to disable the `flowtype-errors/show-errors` eslint rule in the `.eslintrc` by setting it to `0`* |
|
||||
|
|
||||
**Sublime** |
|
||||
* [Editorconfig Integration](https://github.com/sindresorhus/editorconfig-sublime#readme) |
|
||||
* [Linting](https://github.com/SublimeLinter/SublimeLinter3) |
|
||||
* [ESLint Integration](https://github.com/roadhump/SublimeLinter-eslint) |
|
||||
* [Syntax Highlighting](https://github.com/babel/babel-sublime) |
|
||||
* [Autocompletion](https://github.com/ternjs/tern_for_sublime) |
|
||||
* [Node Snippets](https://packagecontrol.io/packages/JavaScript%20%26%20NodeJS%20Snippets) |
|
||||
* [ES6 Snippets](https://packagecontrol.io/packages/ES6-Toolkit) |
|
||||
|
|
||||
**Others** |
|
||||
* [Editorconfig](http://editorconfig.org/#download) |
|
||||
* [ESLint](http://eslint.org/docs/user-guide/integrations#editors) |
|
||||
* Babel Syntax Plugin |
|
||||
|
|
||||
## DevTools |
|
||||
|
|
||||
#### Toggle Chrome DevTools |
|
||||
|
|
||||
- OS X: <kbd>Cmd</kbd> <kbd>Alt</kbd> <kbd>I</kbd> or <kbd>F12</kbd> |
|
||||
- Linux: <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>I</kbd> or <kbd>F12</kbd> |
|
||||
- Windows: <kbd>Ctrl</kbd> <kbd>Shift</kbd> <kbd>I</kbd> or <kbd>F12</kbd> |
|
||||
|
|
||||
*See [electron-debug](https://github.com/sindresorhus/electron-debug) for more information.* |
|
||||
|
|
||||
#### DevTools extension |
|
||||
|
|
||||
This boilerplate includes the following DevTools extensions: |
|
||||
|
|
||||
* [Devtron](https://github.com/electron/devtron) - Install via [electron-debug](https://github.com/sindresorhus/electron-debug). |
|
||||
* [React Developer Tools](https://github.com/facebook/react-devtools) - Install via [electron-devtools-installer](https://github.com/GPMDP/electron-devtools-installer). |
|
||||
* [Redux DevTools](https://github.com/zalmoxisus/redux-devtools-extension) - Install via [electron-devtools-installer](https://github.com/GPMDP/electron-devtools-installer). |
|
||||
|
|
||||
You can find the tabs on Chrome DevTools. |
|
||||
|
|
||||
If you want to update extensions version, please set `UPGRADE_EXTENSIONS` env, just run: |
|
||||
|
|
||||
```bash |
|
||||
$ UPGRADE_EXTENSIONS=1 npm run dev |
|
||||
|
|
||||
# For Windows |
|
||||
$ set UPGRADE_EXTENSIONS=1 && npm run dev |
|
||||
``` |
|
||||
|
|
||||
:bulb: You can debug your production build with devtools by simply setting the `DEBUG_PROD` env variable: |
|
||||
``` |
|
||||
DEBUG_PROD=true npm run package |
|
||||
``` |
|
||||
|
|
||||
|
|
||||
## CSS Modules |
|
||||
|
|
||||
This boilerplate is configured to use [css-modules](https://github.com/css-modules/css-modules) out of the box. |
|
||||
|
|
||||
All `.css` file extensions will use css-modules unless it has `.global.css`. |
|
||||
|
|
||||
If you need global styles, stylesheets with `.global.css` will not go through the |
|
||||
css-modules loader. e.g. `app.global.css` |
|
||||
|
|
||||
If you want to import global css libraries (like `bootstrap`), you can just write the following code in `.global.css`: |
|
||||
|
|
||||
```css |
|
||||
@import "~bootstrap/dist/css/bootstrap.css"; |
|
||||
``` |
|
||||
|
|
||||
## Sass support |
|
||||
|
|
||||
If you want to use Sass in your app, you only need to import `.sass` files instead of `.css` once: |
|
||||
```js |
|
||||
import './app.global.scss'; |
|
||||
``` |
|
||||
|
|
||||
## Packaging |
|
||||
|
|
||||
To package apps for the local platform: |
|
||||
|
|
||||
```bash |
|
||||
$ npm run package |
|
||||
``` |
|
||||
|
|
||||
To package apps for all platforms: |
|
||||
|
|
||||
First, refer to [Multi Platform Build](https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Build) for dependencies. |
|
||||
|
|
||||
Then, |
|
||||
```bash |
|
||||
$ npm run package-all |
|
||||
``` |
|
||||
|
|
||||
To package apps with options: |
|
||||
|
|
||||
```bash |
|
||||
$ npm run package -- --[option] |
|
||||
``` |
|
||||
|
|
||||
## Further commands |
|
||||
|
|
||||
To run the application without packaging run |
|
||||
|
|
||||
```bash |
|
||||
$ npm run build |
|
||||
$ npm start |
|
||||
``` |
|
||||
|
|
||||
To run End-to-End Test |
|
||||
|
|
||||
```bash |
|
||||
$ npm run build |
|
||||
$ npm run test-e2e |
|
||||
``` |
|
||||
|
|
||||
#### Options |
|
||||
|
|
||||
See [electron-builder CLI Usage](https://github.com/electron-userland/electron-builder#cli-usage) |
|
||||
|
|
||||
## How to add modules to the project |
|
||||
|
|
||||
You will need to add other modules to this boilerplate, depending on the requirements of your project. For example, you may want to add [node-postgres](https://github.com/brianc/node-postgres) to communicate with PostgreSQL database, or |
|
||||
[material-ui](http://www.material-ui.com/) to reuse react UI components. |
|
||||
|
|
||||
⚠️ Please read following section before installing any dependencies ⚠️ |
|
||||
|
|
||||
### Module Structure |
|
||||
|
|
||||
This boilerplate uses a [two package.json structure](https://github.com/electron-userland/electron-builder/wiki/Two-package.json-Structure). This means, you will have two `package.json` files. |
|
||||
|
|
||||
1. `./package.json` in the root of your project |
|
||||
1. `./app/package.json` inside `app` folder |
|
||||
|
|
||||
### Which `package.json` file to use |
|
||||
|
|
||||
**Rule of thumb** is: all modules go into `./package.json` except native modules. Native modules go into `./app/package.json`. |
|
||||
|
|
||||
1. If the module is native to a platform (like node-postgres) or otherwise should be included with the published package (i.e. bcrypt, openbci), it should be listed under `dependencies` in `./app/package.json`. |
|
||||
2. If a module is `import`ed by another module, include it in `dependencies` in `./package.json`. See [this ESLint rule](https://github.com/benmosher/eslint-plugin-import/blob/master/docs/rules/no-extraneous-dependencies.md). Examples of such modules are `material-ui`, `redux-form`, and `moment`. |
|
||||
3. Otherwise, modules used for building, testing and debugging should be included in `devDependencies` in `./package.json`. |
|
||||
|
|
||||
### Further Readings |
|
||||
|
|
||||
See the wiki page, [Module Structure — Two package.json Structure](https://github.com/chentsulin/electron-react-boilerplate/wiki/Module-Structure----Two-package.json-Structure) to understand what is native module, the rationale behind two package.json structure and more. |
|
||||
|
|
||||
For an example app that uses this boilerplate and packages native dependencies, see [erb-sqlite-example](https://github.com/amilajack/erb-sqlite-example). |
|
||||
|
|
||||
## Static Type Checking |
|
||||
This project comes with Flow support out of the box! You can annotate your code with types, [get Flow errors as ESLint errors](https://github.com/amilajack/eslint-plugin-flowtype-errors), and get [type errors during runtime](https://github.com/codemix/flow-runtime) during development. Types are completely optional. |
|
||||
|
|
||||
## Native-like UI |
|
||||
|
|
||||
If you want to have native-like User Interface (OS X El Capitan and Windows 10), [react-desktop](https://github.com/gabrielbull/react-desktop) may perfect suit for you. |
|
||||
|
|
||||
## Dispatching redux actions from main process |
|
||||
|
|
||||
see discusses in [#118](https://github.com/chentsulin/electron-react-boilerplate/issues/118) and [#108](https://github.com/chentsulin/electron-react-boilerplate/issues/108) |
|
||||
|
|
||||
## How to keep the boilerplate updated |
|
||||
|
|
||||
If your application is a fork from this repo, you can add this repo to another git remote: |
|
||||
|
|
||||
```sh |
|
||||
git remote add upstream https://github.com/chentsulin/electron-react-boilerplate.git |
|
||||
``` |
|
||||
|
|
||||
Then, use git to merge some latest commits: |
|
||||
|
|
||||
```sh |
|
||||
git pull upstream master |
|
||||
``` |
|
||||
|
|
||||
## Maintainers |
|
||||
|
|
||||
- [C. T. Lin](https://github.com/chentsulin) |
|
||||
- [Jhen-Jie Hong](https://github.com/jhen0409) |
|
||||
- [Amila Welihinda](https://github.com/amilajack) |
|
||||
|
|
||||
## Backers |
|
||||
|
|
||||
Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/electron-react-boilerplate#backer)] |
|
||||
|
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/0/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/0/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/1/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/1/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/2/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/2/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/3/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/3/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/4/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/4/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/5/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/5/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/6/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/6/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/7/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/7/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/8/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/8/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/9/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/9/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/10/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/10/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/11/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/11/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/12/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/12/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/13/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/13/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/14/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/14/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/15/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/15/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/16/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/16/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/17/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/17/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/18/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/18/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/19/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/19/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/20/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/20/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/21/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/21/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/22/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/22/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/23/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/23/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/24/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/24/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/25/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/25/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/26/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/26/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/27/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/27/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/28/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/28/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/backer/29/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/backer/29/avatar.svg"></a> |
|
||||
|
|
||||
## Sponsors |
|
||||
|
|
||||
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/electron-react-boilerplate#sponsor)] |
|
||||
|
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/0/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/0/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/1/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/1/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/2/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/2/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/3/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/3/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/4/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/4/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/5/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/5/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/6/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/6/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/7/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/7/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/8/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/8/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/9/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/9/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/10/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/10/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/11/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/11/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/12/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/12/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/13/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/13/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/14/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/14/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/15/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/15/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/16/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/16/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/17/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/17/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/18/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/18/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/19/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/19/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/20/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/20/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/21/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/21/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/22/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/22/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/23/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/23/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/24/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/24/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/25/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/25/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/26/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/26/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/27/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/27/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/28/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/28/avatar.svg"></a> |
|
||||
<a href="https://opencollective.com/electron-react-boilerplate/sponsor/29/website" target="_blank"><img src="https://opencollective.com/electron-react-boilerplate/sponsor/29/avatar.svg"></a> |
|
||||
|
|
||||
## License |
|
||||
MIT © [C. T. Lin](https://github.com/chentsulin) |
|
||||
|
|
||||
[npm-image]: https://img.shields.io/npm/v/electron-react-boilerplate.svg?style=flat-square |
|
||||
[github-tag-image]: https://img.shields.io/github/tag/chentsulin/electron-react-boilerplate.svg |
|
||||
[github-tag-url]: https://github.com/chentsulin/electron-react-boilerplate/releases/latest |
|
||||
[travis-image]: https://travis-ci.org/chentsulin/electron-react-boilerplate.svg?branch=master |
|
||||
[travis-url]: https://travis-ci.org/chentsulin/electron-react-boilerplate |
|
||||
[appveyor-image]: https://ci.appveyor.com/api/projects/status/github/chentsulin/electron-react-boilerplate?svg=true |
|
||||
[appveyor-url]: https://ci.appveyor.com/project/chentsulin/electron-react-boilerplate/branch/master |
|
||||
[david_img]: https://img.shields.io/david/chentsulin/electron-react-boilerplate.svg |
|
||||
[david_site]: https://david-dm.org/chentsulin/electron-react-boilerplate |
|
Loading…
Reference in new issue