embark/site/source/docs/embark_commands.md
Pascal Precht 031ebe8bb2 fix(plugins/basic-pipeline): ensure correct webpack config is loaded
When making `basic-pipeline` in 948956ab1f we've introduced a regression
and with this fix, a behaviour change as well::

1. The `webpackConfigName` passed to `Engine` is completely ignored, caused it to be
  `undefined` down the line when the plugin tries to do its work (we essentially broke bundling)
2. With that configuration being ignored, we need a new way to make this configurable.
  Since `basic-pipeline` is now a true plugin, it makes sense for itself to have configuration
  options for that, while still providing decent defaults.
3. The trickly thing is that `webpackConfigName` used to have different values per command.
  For example `build` used to use `production` while `run` used `development` as config.
4. This commit introduces new configuration options for `basic-pipeline` that lets users configure
the `webpackConfigName` per environment:

```json
// embark.json
{
  ...
  "plugins": {
    "embark-basic-pipeline": {
      "development": {
        webpackConfigName: "development"
      },
      "production": {
        webpackConfigName: "production"
      }
    }
  }
}
```
^ These are also the defaults. So not providing this configuration will make
Embark imply it.

Notice that this does not account for the "different config per command" case.
This means `embark build` will also use `development` by default.

Prior to this commit and the one mentioned above, the `webpackConfigName` was configurable
through the CMD `--pipeline` option. Since this a) no longer a built-in feature
and b) ignored at the moment anyways, I've removed the `--pipeline` options
from all commands as well.

BREAKING CHANGES

The commands `embark eject-webpack` and `embark eject-build-config` are no longer available.
The `--pipeline` option has been removed from all commands that used to support it.
2020-03-23 15:19:58 +01:00

4.9 KiB

title: Embark CLI Commands layout: docs

This is the Embark CLI command reference.

new

$ embark new dappName

Creates a new empty DApp project. If no dappName is provided, Embark will ask for the dappName.

Option Description
--contracts-only create a barebones project meant only for contract development
--simple an alias for --contracts-only
--template DEPRECATED IN v5 download a template using a known name or a git host URL

{% notification danger 'DEPRECATION NOTICE' %} The --template option has been deprecated in v5 and support will be removed in future versions. {% endnotification %}

The --template option supports several URL styles and shortcuts for git hosts:

git@github.com:ghuser/repo_name
https://github.com/ghuser/repo_name
github:ghuser/repo_name
ghuser/repo_name

It's possible to append a branch name to any of the above, for example:

https://github.com/ghuser/repo_name#branch_name
ghuser/repo_name#branch_name

Bitbucket and GitLab URLs and shortcuts are also supported, for example:

bitbucket:bbuser/repo_name#branch_name
gitlab:gluser/repo_name#branch_name

A short name can be used for templates maintained in the Embark GitHub organization, for example:

$ embark new --template typescript

demo

$ embark demo

Generates a demo Embark Project with a working contract and examples of working with contracts, IPFS and Whisper.

build

$ embark build [environment]

Deploys and Builds the DApp at dist/. If no environment is provider embark will use development by default.

run

$ embark run [environment]

Deploys and Builds the DApp at dist/. By default will launch a dashboard and start a dev server at http://localhost:8000/. If no environment is provider embark will use development by default.

Option Description
-p, --port port to run the dev webserver (default: 8000)
-b, --host host to run the dev webserver (default: localhost)
--noserver disable the development webserver
--nodashboard simple mode, disables the dashboard
--nobrowser prevent the development webserver from automatically opening a web browser
--no-color no colors in case it's needed for compatbility purposes
--logfile filename to output logs (default: none)

blockchain

$ embark blockchain [environment]

Takes the config at config/blockchain.json for the environment specified and starts a blockchain node. If no environment is provider embark will use development by default.

If you want, you can skip the step of running embark blockchain, as embark run, build and upload now all start a blockchain node in a separate process if there is not one already started using the same configurations.

simulator

$ embark simulator [environment]

Takes the config at config/blockchain.json for the environment specified and starts a blockchain simulator. If no environment is provider embark will use development by default.

Option Description
-p, --port port to run the rpc simulator (default: 8545)
-h, --host host to run the rpc simulator (default: localhost)
-a, --accounts num of accounts to start the simulator (default: 10)
-e, --defaultBalanceEther balance in ether to assign each test account (default: 100)
-l, --gasLimit custom gasLimit (default: 8000000)

test

$ embark test [file]

Runs Tests. If file is not specified then it will run all the tests inside the test/ directory.

Option Description
-n, --node node for running the tests (default: vm)
-d, --gasDetails print the gas cost for each contract deployment when running the tests
-c, --coverage generate a coverage report after running the tests (vm only)

The --node option supports several values:

Value Description
vm start and use an Ethereum simulator (ganache)
embark use the node of a running embark process
<endpoint> connect to and use the specified node

Example of endpoint usage: embark test --node ws://localhost:8556

reset

$ embark reset

Resets embarks state on this dapp including clearing cache.

exec

$ embark exec [environment] [file|directory]

Executes a given (migration) script to perform complex after deployment operations.

It's required to specifiy the environment in which the script(s) will be executed in. In addition it's possible to specificy a directory in which multiple script live in. Embark will execute them one by one.

upload

$ embark upload [platform] [environment]

Uploads the DApp to a decentralized storage such as IPFS. platform can be ipfs or swarm or another parameter if supported by a plugin. If no environment is provider embark will use development by default.

graph

$ embark graph

Generates documentation based on the smart contracts configured

version

$ embark version

Displays version information.