nx-loopback-new v0.0.12
nx-loopback-new
Create a Loopback 4 application within your Nx Monorepo. This is more of a proof of concept, and may not be production ready. My hope is that Nrwl adds official support for Loopback within Nx. Pull requests are more than welcome.
Install package
With Yarn:
yarn add nx-loopback-new
With NPM:
npm i nx-loopback-new --save
Github:
npm i https://github.com/me-marcel/nx-loopback-new.git --save
And then you must build the contents in your node_modules/nx-loopback-new with yarn build
.
Create a new application
With Nrwl CLI:
nx g nx-loopback-new:app
With Angular CLI:
ng g nx-loopback-new:app
Schematics
Init
Initializes the Nx monorepo to have dependencies for Loopback 4. This is a hidden schematic and should not ever need to be called.
Schema
Name | Type | Required | Description |
---|---|---|---|
skipFormat | boolean | false | Not actually being used yet |
Application
Generates a new Loopback 4 application.
Schema
Name | Type | Required | Description |
---|---|---|---|
name | string | yes | Name of the new application |
tags | string | no | Comma separated tags used for linting |
skipFormat | boolean | false | Not actually being used yet |
Builders
Build
Builds the application using lb-tsc.
With Nx CLI:
nx build application-name
With Angular CLI:
ng build application-name
Schema
Name | Type | Default | Required | Description |
---|---|---|---|---|
appPath | string | yes | Path the application. ie. apps/backend | |
tsConfig | string | yes | Path to the tsConfig.json file for Loopback | |
outputPath | string | no | Path the dist target folder (set to use dist/apps/{project_name} by default) | |
clean | boolean | false | no | Delete dist files prior to build |
watch | boolean | false | no | Watch for code changes and automatically re-build when needed |
Execute
Runs the build application with Node.js.
With Nx CLI:
nx serve application-name
With Angular CLI:
ng serve application-name
Schema
Name | Type | Default | Required | Description |
---|---|---|---|---|
appPath | string | yes | Path the application. ie. apps/backend | |
NODE_ENV | string | development | no | Node environment for the application |
args | string[] | [] | no | Arguments to add to the command |
buildTarget | string | yes | The Nx build command for the new application | |
runOnly | boolean | true | no | Skip the build before running |
clean | boolean | false | no | Delete dist files prior to build |
Features still missing
I would like to see the following features added to the project.
- Execute with watch
- Unit tests
Shoutouts and Credit
I couldn't have built this without the following resources and wanted to make sure to note them:
The official Nx github is a great resource for seeing how the team at Nrwl are building schematics and builders for Nx. https://github.com/nrwl/nx
Abdooly wrote a custom builder for using ts-node. That repo was a massive help in understanding how to make a builder without using webpack. https://github.com/abdoolly/ts-node-builder
Martin Raymond published the original generator code. https://github.com/codephobia/nx-loopback-next