UNPKG

@loopback/docs

Version:
426 lines (338 loc) 16.8 kB
# @loopback/cli This module contains the experimental CLI for LoopBack 4. ## Installation Run the following command to install the CLI. `npm install -g @loopback/cli` ## Basic Use 1. To scaffold a LoopBack 4 application `lb4` (or `lb4 app`) ```sh Usage: lb4 [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --applicationName # Application name --docker # Include Dockerfile and .dockerignore --repositories # Include repository imports and RepositoryMixin --services # Include service-proxy imports and ServiceMixin --description # Description for the application --outdir # Project root directory for the application --eslint # Enable eslint --prettier # Enable prettier --mocha # Enable mocha --loopbackBuild # Use @loopback/build --vscode # Use preconfigured VSCode settings --private # Mark the project private (excluded from npm publish) -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: name # Project name for the application Type: String Required: false ``` 2. To scaffold a LoopBack 4 extension `lb4 extension` ```sh Usage: lb4 extension [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --componentName # Component name --description # Description for the extension --outdir # Project root directory for the extension --eslint # Enable eslint --prettier # Enable prettier --mocha # Enable mocha --loopbackBuild # Use @loopback/build --vscode # Use preconfigured VSCode settings --private # Mark the project private (excluded from npm publish) -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: name # Project name for the extension Type: String Required: false ``` 3. To scaffold a Controller into your application ```sh cd <your-project-directory> lb4 controller ``` ```sh Usage: lb4 controller [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix --controllerType # Type for the controller Arguments: name # Name for the controller Type: String Required: false ``` 4. To scaffold a DataSource into your application ```sh cd <your-project-directory> lb4 datasource ``` ```sh Usage: lb4 datasource [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: name # Name for the datasource Type: String Required: true ``` 5. To scaffold a Model into your application ```sh cd <your-project-directory> lb4 model ``` ```sh Usage: lb4 model [<name>] [options] Options: -h, --help # Print the generator's options and usage --base # A valid base model Arguments: name # Name for the model Type: String Required: true ``` 6. To scaffold a Repository into your application ```sh cd <your-project-directory> lb4 repository ``` ```sh Usage: lb4 repository [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --model # A valid model name --id # A valid ID property name for the specified model --datasource # A valid datasource name --repositoryBaseClass # A valid repository base class Default: DefaultCrudRepository -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: name # Name for the repository Type: String Required: false ``` 7. To scaffold a Service into your application ```sh cd <your-project-directory> lb4 service ``` ```sh Usage: lb4 service [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --datasource # A valid datasource name -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: name # Name for the service Type: String Required: false ``` 8. To download one of LoopBack example projects `lb4 example` ```sh Usage: lb4 example [<example-name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: example-name # Name of the example to clone Type: String Required: false Available examples: todo: Tutorial example on how to build an application with LoopBack 4. todo-list: Continuation of the todo example using relations in LoopBack 4. hello-world: A simple hello-world Application using LoopBack 4. log-extension: An example extension project for LoopBack 4. rpc-server: A basic RPC server using a made-up protocol. soap-calculator: An example on how to integrate SOAP web services express-composition: A simple Express application that uses LoopBack 4 REST API. greeter-extension: An example showing how to implement the extension point/extension pattern. lb3-application: An example LoopBack 3 application mounted in a LoopBack 4 project. ``` 9. To generate artifacts from an OpenAPI spec into your application ```sh cd <your-project-directory> lb4 openapi ``` ```sh Usage: lb4 openapi [<url>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --url # URL or file path of the OpenAPI spec --validate # Validate the OpenAPI spec Default: false --promote-anonymous-schemas # Promote anonymous schemas as models Default: false -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: url # URL or file path of the OpenAPI spec Type: String Required: false ``` 10. To generate a life cycle observer class ```sh cd <your-project-directory> lb4 observer ``` ```sh Usage: lb4 observer [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --group # Name of the observer group for ordering -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: name # Name for the observer Type: String Required: false ``` 11. To generate an interceptor provider class ```sh cd <your-project-directory> lb4 interceptor ``` ```sh Usage: lb4 interceptor [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --group # Name of the interceptor group for ordering -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix Arguments: name # Name for the interceptor Type: String Required: false ``` 12. To discover a model from a supported datasource ```sh cd <your-project-directory> lb4 discover lb4 discover [<name>] [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix -ds, --dataSource # The name of the datasource to discover --views # Boolean to discover views Default: true --schema # Schema to discover --all # Discover all models without prompting users to select Default: false --outDir # Specify the directory into which the `model.model.ts` files will be placed Arguments: name # Name for the discover Type: String Required: false ``` 13. To generate relation into your application ```sh cd <your-project-directory> lb4 relation ``` ```sh Usage: lb4 relation [options] Options: -h, --help # Print the generator's options and usage --skip-cache # Do not remember prompt answers Default: false --skip-install # Do not automatically install dependencies Default: false --force-install # Fail on install dependencies error Default: false --relationType # Relation type --sourceModel # Source model --destinationModel # Destination model --foreignKeyName # Destination model foreign key name --relationName # Relation name -c, --config # JSON file name or value to configure options -y, --yes # Skip all confirmation prompts with default or provided value --format # Format generated code using npm run lint:fix ``` 14. To list available commands `lb4 --commands` (or `lb4 -l`) ```sh Available commands: lb4 app lb4 extension lb4 controller lb4 datasource lb4 model lb4 repository lb4 service lb4 example lb4 openapi lb4 relation lb4 observer lb4 interceptor lb4 discover ``` Please note `lb4 --help` also prints out available commands. 15. To print out version information `lb4 --version` (or `lb4 -v`) ```sh @loopback/cli version: 1.8.1 @loopback/* dependencies: - @loopback/authentication: ^1.0.14 - @loopback/boot: ^1.0.14 - @loopback/build: ^1.3.1 - @loopback/context: ^1.6.0 - @loopback/core: ^1.1.7 - @loopback/metadata: ^1.0.7 - @loopback/openapi-spec-builder: ^1.0.7 - @loopback/openapi-v3: ^1.2.3 - @loopback/repository-json-schema: ^1.3.3 - @loopback/repository: ^1.1.7 - @loopback/rest: ^1.7.0 - @loopback/testlab: ^1.0.7 - @loopback/docs: ^1.9.1 - @loopback/service-proxy: ^1.0.9 - @loopback/http-caching-proxy: ^1.0.8 - @loopback/http-server: ^1.1.7 - @loopback/rest-explorer: ^1.1.10 ``` ## Contributions - [Guidelines](https://github.com/strongloop/loopback-next/blob/master/docs/CONTRIBUTING.md) - [Join the team](https://github.com/strongloop/loopback-next/issues/110) ## Tests run `npm test` from the root folder. ## Contributors See [all contributors](https://github.com/strongloop/loopback-next/graphs/contributors). ## License MIT