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

179 lines
4.9 KiB
Markdown

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.