npm package: @nimblehq/react-template
Description: Nimble React Application Generator
Author: Nimble
Latest version: 1.1.0

<p align="center">
  <img alt="Nimble logo" src="https://assets.nimblehq.co/logo/light/logo-light-text-320.png" />
</p>

<p align="center">
  <strong>React Template CLI Tool</strong>
</p>

---

<p align="center">
  <a href="https://www.npmjs.com/package/@nimblehq/react-templates"><img src="https://badgen.net/npm/v/@nimblehq/react-templates" /></a>
  <a href="https://www.npmjs.com/package/@nimblehq/react-templates"><img src="https://badgen.net/npm/dy/@nimblehq/react-templates" /></a>
</p>

Command Line Interface for React application at Nimble.

This CLI is built with the [Open CLI framework](https://oclif.io/) [![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)

<!-- toc -->
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->
# Usage
<!-- usage -->
```sh-session
$ npm install -g @nimblehq/react-template
$ nimble-react COMMAND
running command...
$ nimble-react (--version)
@nimblehq/react-template/1.1.0 linux-x64 node-v16.17.0
$ nimble-react --help [COMMAND]
USAGE
  $ nimble-react COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`nimble-react generate APPNAME [TEMPLATE] [DEST]`](#nimble-react-generate-appname-template-dest)
* [`nimble-react help [COMMAND]`](#nimble-react-help-command)
* [`nimble-react plugins`](#nimble-react-plugins)
* [`nimble-react plugins:install PLUGIN...`](#nimble-react-pluginsinstall-plugin)
* [`nimble-react plugins:inspect PLUGIN...`](#nimble-react-pluginsinspect-plugin)
* [`nimble-react plugins:install PLUGIN...`](#nimble-react-pluginsinstall-plugin-1)
* [`nimble-react plugins:link PLUGIN`](#nimble-react-pluginslink-plugin)
* [`nimble-react plugins:uninstall PLUGIN...`](#nimble-react-pluginsuninstall-plugin)
* [`nimble-react plugins:uninstall PLUGIN...`](#nimble-react-pluginsuninstall-plugin-1)
* [`nimble-react plugins:uninstall PLUGIN...`](#nimble-react-pluginsuninstall-plugin-2)
* [`nimble-react plugins update`](#nimble-react-plugins-update)

## `nimble-react generate APPNAME [TEMPLATE] [DEST]`

Generate Nimble React application

```
USAGE
  $ nimble-react generate [APPNAME] [TEMPLATE] [DEST]

ARGUMENTS
  APPNAME   application name
  TEMPLATE  [default: @nimblehq] template location, use "file:{../path/to/your/local/template/repo}" for using a local
            cra template
  DEST      [default: ./] destination, defines in which folder the project folder will be created

DESCRIPTION
  Generate Nimble React application

EXAMPLES
  $ nimble-react generate app-name
```

_See code: [dist/commands/generate/index.ts](https://github.com/nimblehq/react-templates/blob/v1.1.0/dist/commands/generate/index.ts)_

## `nimble-react help [COMMAND]`

Display help for nimble-react.

```
USAGE
  $ nimble-react help [COMMAND] [-n]

ARGUMENTS
  COMMAND  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for nimble-react.
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v5.1.12/src/commands/help.ts)_

## `nimble-react plugins`

List installed plugins.

```
USAGE
  $ nimble-react plugins [--core]

FLAGS
  --core  Show core plugins.

DESCRIPTION
  List installed plugins.

EXAMPLES
  $ nimble-react plugins
```

_See code: [@oclif/plugin-plugins](https://github.com/oclif/plugin-plugins/blob/v2.1.0/src/commands/plugins/index.ts)_

## `nimble-react plugins:install PLUGIN...`

Installs a plugin into the CLI.

```
USAGE
  $ nimble-react plugins:install PLUGIN...

ARGUMENTS
  PLUGIN  Plugin to install.

FLAGS
  -f, --force    Run yarn install with force flag.
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Installs a plugin into the CLI.

  Can be installed from npm or a git url.

  Installation of a user-installed plugin will override a core plugin.

  e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
  will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
  the CLI without the need to patch and update the whole CLI.

ALIASES
  $ nimble-react plugins add

EXAMPLES
  $ nimble-react plugins:install myplugin 

  $ nimble-react plugins:install https://github.com/someuser/someplugin

  $ nimble-react plugins:install someuser/someplugin
```

## `nimble-react plugins:inspect PLUGIN...`

Displays installation properties of a plugin.

```
USAGE
  $ nimble-react plugins:inspect PLUGIN...

ARGUMENTS
  PLUGIN  [default: .] Plugin to inspect.

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Displays installation properties of a plugin.

EXAMPLES
  $ nimble-react plugins:inspect myplugin
```

## `nimble-react plugins:install PLUGIN...`

Installs a plugin into the CLI.

```
USAGE
  $ nimble-react plugins:install PLUGIN...

ARGUMENTS
  PLUGIN  Plugin to install.

FLAGS
  -f, --force    Run yarn install with force flag.
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Installs a plugin into the CLI.

  Can be installed from npm or a git url.

  Installation of a user-installed plugin will override a core plugin.

  e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
  will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
  the CLI without the need to patch and update the whole CLI.

ALIASES
  $ nimble-react plugins add

EXAMPLES
  $ nimble-react plugins:install myplugin 

  $ nimble-react plugins:install https://github.com/someuser/someplugin

  $ nimble-react plugins:install someuser/someplugin
```

## `nimble-react plugins:link PLUGIN`

Links a plugin into the CLI for development.

```
USAGE
  $ nimble-react plugins:link PLUGIN

ARGUMENTS
  PATH  [default: .] path to plugin

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Links a plugin into the CLI for development.

  Installation of a linked plugin will override a user-installed or core plugin.

  e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
  command will override the user-installed or core plugin implementation. This is useful for development work.

EXAMPLES
  $ nimble-react plugins:link myplugin
```

## `nimble-react plugins:uninstall PLUGIN...`

Removes a plugin from the CLI.

```
USAGE
  $ nimble-react plugins:uninstall PLUGIN...

ARGUMENTS
  PLUGIN  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ nimble-react plugins unlink
  $ nimble-react plugins remove
```

## `nimble-react plugins:uninstall PLUGIN...`

Removes a plugin from the CLI.

```
USAGE
  $ nimble-react plugins:uninstall PLUGIN...

ARGUMENTS
  PLUGIN  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ nimble-react plugins unlink
  $ nimble-react plugins remove
```

## `nimble-react plugins:uninstall PLUGIN...`

Removes a plugin from the CLI.

```
USAGE
  $ nimble-react plugins:uninstall PLUGIN...

ARGUMENTS
  PLUGIN  plugin to uninstall

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Removes a plugin from the CLI.

ALIASES
  $ nimble-react plugins unlink
  $ nimble-react plugins remove
```

## `nimble-react plugins update`

Update installed plugins.

```
USAGE
  $ nimble-react plugins update [-h] [-v]

FLAGS
  -h, --help     Show CLI help.
  -v, --verbose

DESCRIPTION
  Update installed plugins.
```
<!-- commandsstop -->

## How to contribute

### Run

To run the CLI on your local machine:

```bash
  $ cd ./packages/cli-tool/
  $ npm i
  $ ./bin/dev generate app-name
```

> 💡 Running just `./bin/dev` without argument will display all the possible commands as well as additional information.

If your changes also impacted the `cra-template` package, you can still test them locally using:

```BASH
  ./bin/dev generate test-cli file:../cra-template
```

Find more the [OCLIF Documentation](https://oclif.io/docs/introduction.html)!

### Test

Tests are generated from the combination of:
- `TestData` objects
- `Scenario` objects

`TestData` objects gather all the rules that should be tested for a given add-on.
When creating a new add-on, you need to create a new associated TestData object in the `./test/add-ons/**` folder.

`Scenario` objects enable running the tests of multiple add-ons in a single `generate` command execution. As running the `generate` command is time-consuming, grouping several add-ons tests into a single scenario is a way to get tests results earlier.

## License

This project is Copyright (c) 2014 and onwards.
It is free software and may be redistributed under the terms specified in the [LICENSE] file.

[LICENSE]: /LICENSE

## About

![Nimble](https://assets.nimblehq.co/logo/dark/logo-dark-text-160.png)

This project is maintained and funded by [Nimble](https://nimblehq.co).

We love open source and do our part in sharing our work with the community!
See [our other projects][community] or [hire our team][hire] to help build your product.

[community]: https://github.com/nimblehq
[hire]: https://nimblehq.co/