Live editing development on desktop app
Electron application boilerplate based on React, Redux, React Router, Webpack, React Transform HMR for rapid application development
First, clone the repo via git:
git clone https://github.com/chentsulin/electron-react-boilerplate.git your-project-name
And then install dependencies.
$ cd your-project-name && npm install
Run this two commands simultaneously in different console tabs.
$ npm run hot-server
$ npm run start-hot
or run two servers with one command
$ npm run dev
Note: requires a node version >= 4 and an npm version >= 2.
- OS X: Cmd Alt I or F12
- Linux: Ctrl Shift I or F12
- Windows: Ctrl Shift I or F12
See electron-debug for more information.
We used redux-devtools-extension, you can find the Redux
tab on Chrome DevTools.
If you use any 3rd party libraries which can't be built with webpack, you must list them in your webpack.config.base.js
:
externals: [
// put your node 3rd party libraries which can't be built with webpack here (mysql, mongodb, and so on..)
]
You can find those lines in the file.
This boilerplate out of the box is configured to use css-modules.
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
$ npm run package
To package apps for all platforms:
$ npm run package-all
- --name, -n: Application name (default: ElectronReact)
- --version, -v: Electron version (default: latest version)
- --asar, -a: asar support (default: false)
- --icon, -i: Application icon
- --all: pack for all platforms
Use electron-packager
to pack your app with --all
options for darwin (osx), linux and win32 (windows) platform. After build, you will find them in release
folder. Otherwise, you will only find one for your os.
test
, tools
, release
folder and devDependencies in package.json
will be ignored by default.
We add some module's peerDependencies
to ignore option as default for application size reduction.
babel-core
is required bybabel-loader
and its size is ~19 MBnode-libs-browser
is required bywebpack
and its size is ~3MB.
Note: If you want to use any above modules in runtime, for example:
require('babel/register')
, you should move them fromdevDependencies
todependencies
.
Please checkout Building windows apps from non-windows platforms.
see discusses in #118 and #108
We use webpack-target-electron-renderer to provide a build target for electron renderer process. Read more information here.
Note: webpack >= 1.12.15 has built-in support for
electron-main
andelectron-renderer
targets.
If your application is a fork from this repo, you can add this repo to another git remote:
git remote add upstream https://github.com/chentsulin/electron-react-boilerplate.git
Then, use git to merge some latest commits:
git pull upstream master
If you want to have native-like User Interface (OS X El Capitan and Windows 10), react-desktop may perfect suit for you.
MIT © C. T. Lin