Hey, welcome back in this post series where we will see how to setup a full HTTPS development environment.
In this post, we will setup local HTTPS for Angular app in Nx workspace (or angular cli).
If you don't have generated your certificate with mkcert, I recommand you read the first post of this series. β link
What is Nx?
Nx is a set of extensible dev tools for monorepos, which helps you manage your projects at any scale. It provides great integration with major framework such as Angular, React, Nestframework, Express, ionic, ...
π‘ Nx use the angular-cli
under the hood!
Setting up the project workspace
Creating a new empty workspace
$ npx create-nx-workspace
npx : 179 installΓ©(s) en 7.547s
? Workspace name (e.g., org name) myorg
? What to create in the new workspace empty [an empty workspace with a layout tha
t works best for building apps]
? CLI to power the Nx workspace Nx [Recommended for all applications (React,
Node, etc..)]
...
ποΈ If you already have an Nx workspace, you can skip these steps.
Then, we will install the Angular schematics:
npm install -D @nrwl/angular
Now, we will generate a new Angular application called myapp
(change the name with your app name).
nx generate @nrwl/angular:application --name=myapp
Choose your settings such as stylesheet format
, routing
, ...
Start serving your app with nx serve myapp
π
ποΈ Look at the Angular Nx plugin documentation to see more options β here
Setting up HTTPS
From the first post of this series, I will assume that you have generated your certificate at location myorg/dev-stack/certs/local-cert.pem
& myorg/dev-stack/certs/local-key.pem
. Don't hesitate to go back to the first post to use mkcert and generate your certificate.
In the workspace.json
(or angular.json
with angular-cli
), search for your project name (here myapp
). Under this, look for the serve
object and options
. We will add the ssl configuration under "browserTarget": "myapp:build",
.
The serve object in the workspace.json
should look like this:
...
"serve": {
"builder": "@angular-devkit/build-angular:dev-server",
"options": {
"browserTarget": "myapp:build",
"host": "dev.local",
"ssl": true,
"sslKey": "./dev-stack/certs/local-key.pem",
"sslCert": "./dev-stack/certs/local-cert.pem"
},
"configurations": {
"production": {
"browserTarget": "myapp:build:production"
}
}
},
...
Now save and serve the app:
$ nx serve myapp
> nx run myapp:serve
chunk {main} main.js, main.js.map (main) 24.7 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 141 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 6.15 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 13.4 kB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 2.64 MB [initial] [rendered]
Date: 2020-10-08T13:44:58.948Z - Hash: 546469cedb2db4de6e20 - Time: 3675ms
** Angular Live Development Server is listening on dev.local:4200, open your browser on https://dev.local:4200/ **
: Compiled successfully.
You can open https://dev.local:4200 which is secured with a valid certificate ππ
Feel free to change any configuration on the options, but don't forget to regenerate a new certificate with mkcert of you change the domain name β οΈ
See you in the next post!
Github repository
Nightbr / full-https-development-environment
A full development environment in HTTPS with a valid certificate for your local development domain with mkcert, Nx workspace, angular, reactjs, nestjs, express, docker, traefik.
Myorg
This project was generated using Nx.
π Nx is a set of Extensible Dev Tools for Monorepos.
Adding capabilities to your workspace
Nx supports many plugins which add capabilities for developing different types of applications and different tools.
These capabilities include generating applications, libraries, etc as well as the devtools to test, and build projects as well.
Below are our core plugins:
-
React
npm install --save-dev @nrwl/react
- Web (no framework frontends)
npm install --save-dev @nrwl/web
-
Angular
npm install --save-dev @nrwl/angular
-
Nest
npm install --save-dev @nrwl/nest
-
Express
npm install --save-dev @nrwl/express
-
Node
npm install --save-dev @nrwl/node
There are also many community plugins you could add.
Generate an application
Run nx g @nrwl/react:app my-app
to generate an application.
You can use any of the plugins above to generate applications as well.
When using Nx, you can create multiple applications and libraries in the same workspace.
Generate a library
Run nx
β¦
Top comments (1)
Why are you keeping your certs within the project ?