0.13.0 • Published 1 year ago

@nxarch/ng-nest v0.13.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

A Nx plugin to integrate a NestJS server with a server side rendered Angular application.

From a conceptual point of view the NestJS server incorporates an Angular Universal application that will be reached on specified routes. The server uses the AngularUniversalModule provided by @nxarch/nest-nguniversal. The setup for both applications can be tedious and error-prone. This library takes care of the entire setup and provides an executor for a good DX.

Prerequisites

  • You need a NestJS application and an Angular application in the same workspace.
  • Nx Version >= 14.0.0

Installation

npm i @nxarch/ng-nest
yarn add @nxarch/ng-nest

Setup

Use the provided generator to setup all files. If you don't have an Angular and a NestJS app refer to this part on how to generate these applications.

yarn nx generate @nxarch/ng-nest:init --ssrApp=my-angular-project --serverApp=my-nestjs-project

App Start

Use the added script in the package.json.

yarn dev:server

Setup Nx apps (if not already setup)

Use this command to quickly scaffold a new workspace with an Angular and a NestJS application.

npx create-nx-workspace --preset angular-nest

Setup an Angular app and a NestJS app in an existing Nx workspace.

yarn add --dev @nrwl/angular @nrwl/nest
yarn nx generate @nrwl/angular:app
yarn nx generate @nrwl/nest:app

Configuration

You can configure the plugin with these properties. Use them in server projects project.json: targets -> serve-ssr -> options

PropertyTypeDescription
browserTargetstringThe target name of your browser target (already configured after setup)
ssrTargetstringThe target name of your ssr target (already configured after setup)
serveTargetstringThe target name of your server target (already configured after setup)
hoststring?Browsersync host (default: localhost)
portnumber?The browsersync port (default: 4200)
sslboolean?Enable ssl on browsersync (default: false)
sslKeystring?SSL key to use if ssl is enabled
sslCertstring?SSL cert to use if ssl is enabled
proxyConfigstring?A possible proxy config for browsersync
openBrowserboolean?Enable if a browser window should open on app startup (default: true)
browsersstring[]?Specify which browsers to open on app startup (default is your default system browser) (e.g. "Google Chrome")
serverAutoSyncboolean?You can disable server auto sync if you want to take care of reloading browsersync after server changes. User triggerReload() function to trigger browsersync reloads. (default: true)
disableBrowserSyncboolean?Disable browsersync entirely (default: false)

For configuring the AngularUniversalModule refer to @nxarch/nest-nguniversal.

Notice

When using Angulars http client make sure to set an absolute url. Or use an Interceptor to prepend a base path on the server side.

// don't
hello$ = this.http.get<Message>('/api/hello');
// do
hello$ = this.http.get<Message>('http://localhost:4200/api/hello');
0.12.0

1 year ago

0.13.0

1 year ago

0.11.0

1 year ago

0.11.1

1 year ago

0.11.2

1 year ago

0.11.3

1 year ago

0.11.4

1 year ago

0.10.0

1 year ago

0.10.1

1 year ago

0.10.2

1 year ago

0.9.0

2 years ago

0.8.0

2 years ago

0.6.1

2 years ago

0.7.0

2 years ago

0.5.0

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.6.0

2 years ago

0.4.2

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago