Skip to content
Snippets Groups Projects
Commit fac9771c authored by OZGCloud's avatar OZGCloud
Browse files

OZG-2958 OZG-3245 Add notes to Node 16

As well as more information accumulated in the last months.
parent 4f857cea
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
## Client starten ## Client starten
Um den Client zum laufen zu bekommen, muss zunächst ein `npm install` ausgeführt werden. _Vorbedingungen: Jeweils aktuelle Versionen von Node 16 sowie NPM 8._
Um den Client zum Laufen zu bekommen, muss zunächst ein `npm install` ausgeführt werden.
-> nach dem Ausführen sollte sich ein `node_modules` Ordner im Verzeichnis befinden. -> nach dem Ausführen sollte sich ein `node_modules` Ordner im Verzeichnis befinden.
...@@ -57,6 +59,60 @@ to generate a new component. ...@@ -57,6 +59,60 @@ to generate a new component.
nx g @nrwl/workspace:remove 'library-name' nx g @nrwl/workspace:remove 'library-name'
``` ```
## Beispiel für Libraries und anderes anlegen
Libraries usw. werden durch das [Nx Plugin for Angular](https://nx.dev/packages/angular) erzeugt.
Anlegen einer Library am Beispiel des Historie-Tab auf der Vorgangdetail-Seite:
* historie: UI
* historie-shared: Services, State (NgRX)
```
npx nx g @nrwl/angular:lib historie
npx nx g @nrwl/angular:lib historie-shared
```
Libraries enthalten:
- Services
- Container-Komponenten:
- Bereitstellen von Daten durch Services
- Einbinden von Child-Komponenten
- Child-Komponenten
- Darstellen von Daten, via @Input() übergeben
- Zurückgeben von Daten, via @Output() / Emitter
Container-Komponente anlegen:
```
npx nx g @nrwl/angular:component historie-container --project=historie --export
```
Child-Komponente anlegen - soll in anderen Komponenten eingebunden werden können:
```
npx nx g @nrwl/angular:component historie-list --project=historie --path=libs/historie/src/lib/historie-container --export
```
Service anlegen:
```
npx nx g service historie --project=historie-shared --flat
```
Repository anlegen:
_Kein Nx generator vorhanden - muss manuell getan werden._
Dateien für NgRx state management anlegen:
```
npx nx g @nrwl/angular:ngrx --name=historie --directory=+state --module=libs/historie-shared/src/lib/historie-shared.module.ts --facade=true --root=false
```
Hinweis: Die Datei _libs/historie/tsconfig.json_ enthält möglicherweise zu restriktive Compiler-Optionen. Hinzufügen von `"strictPropertyInitialization": true` beruhigt die IDE, jedoch nicht die Unit Tests. Geholfen hat, alle _compilerOptions_ sowie _angularCompilerOptions_ zu entfernen.
## Allgemein ## Allgemein
Man kann mit Hilfe von `nx --help` eine Liste von Befehlen mit kurzen Erläuterung bekommen. Man kann mit Hilfe von `nx --help` eine Liste von Befehlen mit kurzen Erläuterung bekommen.
...@@ -144,3 +200,58 @@ Für Mehr Info: <https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/ ...@@ -144,3 +200,58 @@ Für Mehr Info: <https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/
| `'-'` | frame: 1 "frame" of virtual time passing (see above description of frames). | `'-'` | frame: 1 "frame" of virtual time passing (see above description of frames).
| `'\|'` | complete: The successful completion of an observable. This is the observable producer signaling `complete()`. | `'\|'` | complete: The successful completion of an observable. This is the observable producer signaling `complete()`.
| `'#'` | error: An error terminating the observable. This is the observable producer signaling `error()`. | `'#'` | error: An error terminating the observable. This is the observable producer signaling `error()`.
Das Frontend wird als Mono Repository via [Nx](https://nx.dev/getting-started/intro) organisiert.
Voneinander trennbare funktionale Bereiche innerhalb einer Anwendung sind in Libaries unterteilt.
## HTTP-Fehler simulieren
1. `netcat` in einer Bash simuliert einen HTTP-Server auf Port 8081, der auf jeden Request einen 500er Fehler zurück gibt.
```bash
while true; do
{ echo -e "HTTP/1.1 500 Internal Server Error\r\nContent-Length: 25\r\nContent-Type: text/plain\r\nDate: $(date)\r\n"; \
echo '500 Internal Server Error'; \
} | nc -l 8081;
done
```
2. Test in einem Terminal mit `curl -IL localhost:8081`
3. _proxy.conf.json_ so konfigurieren, dass für den zu testenden HTTP-Pfad auf den netcat-Server umgeleitet wird. Anschließend `npm start` neu starten. Beispiel für _/api/histories_:
```json
{
"/api/histories": {
"target": {
"host": "localhost",
"port": 8081,
"protocol": "http:"
},
"secure": false,
"logLevel": "debug"
},
"/api": {
"target": {
"host": "localhost",
"port": 8080,
"protocol": "http:"
},
"secure": false,
"logLevel": "debug"
}
}
```
## Library umbenennen
Beispiel: `settings` nach `user-settings`
1. `nx g @nrwl/workspace:move --projectName settings --destination user-settings`
2. `find user-settings/* -depth -execdir rename 's/settings/user-settings/g' {} \;`
3. `git add --all` (Git Historie umbenannter Dateien bleibt erhalten)
4. Globales Suchen/Ersetzen im Code, Großschreibung beachten
- /settings => /user-settings
- Settings => UserSettings
- goofy-client-settings => goofy-client-user-settings
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment