@pattern-lab/cli
Version:
Command-line interface (CLI) for the @pattern-lab/core.
144 lines (106 loc) • 4.58 kB
Markdown
# Pattern Lab Node CLI
> Command-line interface (CLI) for the patternlab-node core.
[](https://github.com/pattern-lab/patternlab-node/actions/workflows/continuous-integration.yml)
[](https://github.com/pattern-lab/patternlab-node/actions/workflows/codeql-analysis.yml)
## Installation
*Note: Global installs are currently not supported and will be fixed when the Pattern Lab core hits v3.0.0*
#### Via NPM
`npm install @pattern-lab/cli --save-dev`
#### Via Yarn
`yarn add @pattern-lab/cli --dev`
## Configuring Your Project to Use the CLI
If the CLI is installed globally, you may call commands directly, such as `patternlab --version`.
If the CLI is not installed globally, you need to tell `npm` where to find the executable when invoking commands.
Open `package.json` and add the following to your `scripts` object:
```diff
"scripts": {
+ "patternlab": "patternlab"
},
```
This tells `npm` to look in the local `node_modules/.bin` directory for the `patternlab` CLI.
Subcommands and options can then be forwarded to the CLI like this:
```bash
npm run patternlab -- serve
```
Installing [`edition-node`](https://github.com/pattern-lab/patternlab-node/tree/master/packages/edition-node) will add the following CLI commands for convenience:
```diff
"scripts": {
+ "pl:build": "patternlab build --config ./patternlab-config.json",
+ "pl:help": "patternlab --help",
+ "pl:install": "patternlab install --config ./patternlab-config.json",
+ "pl:serve": "patternlab serve --config ./patternlab-config.json",
+ "pl:version": "patternlab --version"
},
```
Then you can invoke any of these like this:
```
npm run pl:serve
```
## API & Usage
### General usage
```
Usage: patternlab <cmd> [options]
Commands:
build|compile [options] Build Pattern Lab. Optionally (re-)build only the patterns
export Export a Pattern Lab patterns into a compressed format
init [options] Initialize a Pattern Lab project from scratch or import an edition and/or starterkit
install|add [options] Installs Pattern Lab related modules like starterkits or plugins
serve|browse [options] Starts a server to inspect files in browser
Options:
-h, --help output usage information
-V, --version output the version number
-c, --config <path> Specify config file. Default looks up the project dir
-v, --verbose Show verbose logging
--silent Turn off console logs
```
### Build/Compile Pattern Lab
```
Usage: build|compile [options]
Build Pattern Lab. Optionally (re-)build only the patterns
Options:
-h, --help output usage information
-p, --patterns-only Whether to only build patterns
```
### Initialize Pattern Lab
```
Usage: init [options]
Initialize a Pattern Lab project from scratch or import an edition and/or starterkit
Passing no options starts the init in interactive mode
Options:
-h, --help output usage information
-p, --project-dir <path> Specify a project directory. Default: ./
-e, --edition <name> Specify an edition to install. Default: @pattern-lab/edition-node
-k, --starterkit <name> Specify a starterkit to install. Default: @pattern-lab/starterkit-handlebars-demo
```
### Serve Pattern Lab
```
Usage: serve|browse [options]
Starts a server to inspect files in browser
Options:
-h, --help output usage information
-w, --watch Start watching for changes
```
### Export Pattern Lab
```
Usage: export [options]
Export a Pattern Lab patterns into a compressed format
Options:
-h, --help output usage information
```
### Install Pattern Lab starterkits or plugins
```
Usage: install|add [options]
Installs Pattern Lab related modules like starterkits or plugins
Options:
-h, --help output usage information
--starterkits <names> Specify one or more starterkits to install
--plugins <names> Specify one or more plugins to install
```
## Examples
```
$ patternlab init # Initialize a Pattern Lab project.
$ patternlab build # Builds Pattern Lab from the current dir
$ patternlab build --config <path/to/patternlab-config> # Builds Pattern Lab from different project directory
```
## License
MIT © [Patternlab contributors](https://github.com/pattern-lab/patternlab-node/blob/master/CODEOWNERS)