status-js-desktop/README.md

125 lines
3.4 KiB
Markdown
Raw Normal View History

2018-11-08 17:51:41 +00:00
<p align="center">
2018-11-26 18:30:42 +00:00
A Status client reference implementation using <a href="https://github.com/status-im/status-js">Status-JS</a>.
2018-11-08 17:51:41 +00:00
</p>
2018-11-28 17:16:00 +00:00
<p align="center">
<strong>WIP. DO NOT USE IN PRODUCTION. HIGH RISK ⚠</strong>
</p>
<br />
2018-11-08 17:51:41 +00:00
<div align="center">
<br>
<img src="https://forthebadge.com/images/badges/built-with-love.svg" />
<img src="https://forthebadge.com/images/badges/made-with-javascript.svg" />
2018-11-26 18:30:42 +00:00
<img src="https://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg" />
2018-11-08 17:51:41 +00:00
</div>
## Install
2018-11-26 18:30:42 +00:00
Currently Status-JS-desktop relies on Geth, ensure that [**Geth**](https://github.com/ethereum/go-ethereum/wiki/Installing-Geth) is installed.
In the future we plan for this to be bundled with status-js-desktop or use [**MurMur**](https://github.com/status-im/murmur).
2018-11-08 17:51:41 +00:00
2018-11-26 18:30:42 +00:00
clone the repo via git:
2018-11-08 17:51:41 +00:00
```bash
2018-11-26 18:30:42 +00:00
git clone https://github.com/status-im/status-js-desktop.git
2018-11-08 17:51:41 +00:00
```
And then install the dependencies with yarn.
```bash
2018-11-26 18:30:42 +00:00
$ cd status-js-desktop
2018-11-08 17:51:41 +00:00
$ yarn
```
## Run
2018-11-26 18:30:42 +00:00
Start Geth with shh flags
```bash
$ geth --testnet --syncmode=light --ws --wsport=8546 --wsaddr=localhost --wsorigins=file:// --maxpeers=25 --shh --shh.pow=0.002 --wsapi=eth,web3,net,shh,debug console
```
2018-11-08 17:51:41 +00:00
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 webpack dev server that sends hot updates to the renderer process:
```bash
$ yarn dev
```
If you don't need autofocus when your files was changed, then run `dev` with env `START_MINIMIZED=true`:
```bash
$ START_MINIMIZED=true yarn dev
```
## Packaging
To package apps for the local platform:
```bash
$ yarn package
```
To package apps for all platforms:
First, refer to the [Multi Platform Build docs](https://www.electron.build/multi-platform-build) for dependencies.
Then,
```bash
$ yarn package-all
```
To package apps with options:
```bash
$ yarn package --[option]
```
To run End-to-End Test
```bash
$ yarn build-e2e
$ yarn test-e2e
# Running e2e tests in a minimized window
$ START_MINIMIZED=true yarn build-e2e
$ yarn test-e2e
```
:bulb: You can debug your production build with devtools by simply setting the `DEBUG_PROD` env variable:
```bash
DEBUG_PROD=true yarn 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';
```
## 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.
## Dispatching redux actions from main process
See [#118](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/118) and [#108](https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues/108)