The recommended way to assert that you are using the correct version of node is to use nodenv, which will shim the node
and npm
commands and assert that the local
version is set to what is specified in .node-version.
Once nodenv is installed:
$ nodenv install
The required version of node
>= v8
.
You need libudev
, libusb-1.0-0
, libusb-1.0-0-dev
installed on Linux
Ubuntu:
sudo apt-get install libudev-dev libusb-1.0-0 libusb-1.0-0-dev
This will install dependencies saved in package.json
and flow-typed
repository.
$ npm run setup
If webchaind isn’t available in your project directory, upon launching the app, it will automatically be downloaded and placed in your project base dir.
If you haven’t got webchain-cli
already installed on your system, you can execute ./dependencies.sh
to automatically rustup
and use cargo
to install webchain-cli
and move it to the
project’s base dir. Note: this command is idempotent for rust and cargo (it won’t
try to install cargo if you’ve already got it), but it will
use cargo’s -f
flag to force install webchain-cli
and copy that version to the
project directory.
Firstly: a couple things aren’t working right.
-
Issue 1:
webpack-dev-server
isn’t working right with the current babel-webpack-electron-izing setup. So you’ve got to do your development in Electron for now. Which means you can’t runnpm run start:web
. Bummer.
With these caveats in mind, you can run:
Terminal 1
# This will begin a live-watching compiler for ./src/ and ./electron/ folders
$ npm run build:all
Terminal 2
# This will begin the simulated electron app pulling from those compiled sources.
$ npm run start:electron
Electron and Webchain logs persisted in:
-
OSX:
~/Library/Logs/WebchainWallet/log.log
-
Linux:
~/.config/WebchainWallet/log.log
You can also use a variety of alternative building options, eg.
$ npm run build:all:nowatch
$ npm run build:web
You can run a distribution build in your development environment. Assuming
you’ve already compiled ./src/
and ./electron/
, you’ll be able to run:
$ npm run dist
This command will build for your current system. Note that there are configurations for
several systems (OSX, Linux, Windows) specified on the "build"
field of package.json
, but the dist
command will (by default) only build for the system it’s on.
Note: If you’re developing on OSX and have a developer signing identity on your machine, you can
optionally disable that with CSC_IDENTITY_AUTO_DISCOVERY=false
.
OSX is also able to build for Linux. Add -ml
to that raw command to build for
both OSX and Linux at the same time.
The team can provide you instant attention on our discord channel or on gitter chat