125 lines
3.4 KiB
Markdown
125 lines
3.4 KiB
Markdown
<p align="center">
|
|
A Status client reference implementation using <a href="https://github.com/status-im/status-js">Status-JS</a>.
|
|
</p>
|
|
<p align="center">
|
|
<strong>WIP. DO NOT USE IN PRODUCTION. HIGH RISK ⚠</strong>
|
|
</p>
|
|
<br />
|
|
|
|
<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" />
|
|
<img src="https://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg" />
|
|
</div>
|
|
|
|
## Install
|
|
|
|
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).
|
|
|
|
clone the repo via git:
|
|
|
|
```bash
|
|
git clone https://github.com/status-im/status-js-desktop.git
|
|
```
|
|
|
|
And then install the dependencies with yarn.
|
|
|
|
```bash
|
|
$ cd status-js-desktop
|
|
$ yarn
|
|
```
|
|
|
|
## Run
|
|
|
|
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
|
|
```
|
|
|
|
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)
|