@dnncommunity/dnn-cli
Version:
A CLI for developing DNN extensions and working with DNN
118 lines (83 loc) • 3.77 kB
Markdown
# @dnncommunity/dnn-cli
[](https://opensource.org/licenses/MIT)

## Installation
...via `yarn`
``` sh
yarn global add @dnncommunity/dnn-cli
```
...via `npm`
``` sh
npm install -g @dnncommunity/dnn-cli
```
## Usage
Once **dnn-cli** is installed, it may be used via Command Prompt, PowerShell, Terminal, etc.
``` sh
dnn [create-extension] [extensionType] [moduleType | customExtensionRepo] [--install | -i]
```
### create-extension
Initially, `dnn-cli` supports `create-extension`. Over time, the vision is to grow the CLI to support even more great features. For now, at least, the following two commands are the same:
```
dnn
```
```
dnn create-extension
```
It can be used to quickly setup a new local project by cloning any available starter project found within the [DNN Community organization on GitHub](https://github.com/DNNCommunity). All [available starter project repositories](https://github.com/DNNCommunity?q=starter-&type=&language=) follow the repo naming convention of `starter-<extensionType>-<moduleType>`.
> It also supports custom git repositories of your chosing.
A new local project can be quickly installed into an empty directory of your choice using the following CLI syntax. Optional `dnn` command arguments are indicated using brackets [ ].
``` sh
dnn [extensionType] [moduleType | customExtensionRepo] [--install | -i]
```
Upon running the command and responding to any applicable prompts, the new project will be cloned in the directory from which the `dnn-cli` command was run.
## Examples
### Using no [optional] arguments:
``` sh
dnn
```
> This will result in being prompted for `extensionType` and `moduleType` (or `customExtensionRepo`) depending on **extensionType** selected.
### Using [extensionType] only:
``` sh
dnn theme
```
> For an `extensionType` that does not have a `moduleType` or `customExtensionRepo`, no prompts will be displayed and the new project will be created. For an `extensionType` that does have a `moduleType` or `customExtensionRepo` (e.g., "Module", "Persona Bar", "*Custom"), a prompt will be displayed to select the desired `moduletype` or enter a valid `customExtensionRepo`.
### Using [extensionType] and [moduleType]:
``` sh
dnn module web-forms
```
### Using [extensionType] and [customExtensionRepo]:
``` sh
dnn *custom https://github.com/<user|org>/<repo>.git
```
### Extension Types & Module Types
None of these are case sensitive. Extension types and module types with spaces in the name can be wrapped in quotes or hyphenated.
* Authentican System (authentication-system)
* Connector (connector)
* Container (container)
* Core Language Pack (core-language-pack)
* Extension Language Pack (extension-language-pack)
* JavaScript Library (javascript-library)
* Library (library)
* Module (module)
* MVC (mvc)
* Razor 3 (razor-3)
* SPA (spa)
* Web Forms (web-forms)
* Persona Bar (persona-bar)
* Angular (angular)
* AngularJS (angularjs)
* HTML (html)
* React (react)
* Vue (vue)
* Provider
* Scheduled Job (scheduled-job)
* Theme Object (theme-object)
* Theme (theme)
* Web API (web-api)
* Widget (widget)
* `*Custom (*custom)`
### Options
#### Install
For front-end projects, including the `--install` or `-i` option will automatically run `yarn` (`yarn install`) or `npm install` once the starter repository is cloned. The use of `yarn` or `npm` will be chosen based on your environment's configuration (`yarn` will take preferrence if installed).
### Features, Tutorials & Labs
Coming soon at [dnndocs.com](https://dnndocs.com)