# Alfa Frontend Informationen zur lokalen Installation sind unter [dokumentation/Entwicklungsumgebung/README.md](https://git.ozg-sh.de/ozgcloud-doc/dokumentation/src/branch/master/Entwicklungsumgebung/README.md#angular-frontend) abgelegt. Befehle und Tipps zum Umgang mit der Codebasis und zur Testerstellung liegen in [dokumentation/Entwicklung/Angular.md](https://git.ozg-sh.de/ozgcloud-doc/dokumentation/src/branch/master/Entwicklung/Angular.md). ## Alfa Frontend starten Um das Alfa Frontend zum Laufen zu bekommen, muss zunächst ein `pnpm install` ausgeführt werden. -> nach dem Ausführen sollte sich ein `node_modules` Ordner im Verzeichnis befinden. Im Anschluß wird das Alfa Frontend über `pnpm start` gestartet. Hinweise: - Bei Fehler _npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"_: - Prüfen, ob eine Datei _.npmrc_ in _alfa/alfa_ liegt, die den selben Inhalt hat wie die _.npmrc_, die in _apps/alfa-e2e/Jenkinsfile_ angelegt wird. - Alternative: Die Installation mit dem offiziellen NPM-Repository ausführen: `pnpm install --registry=https://registry.npmjs.org/` - Bei nicht nachvollziehbaren Problemen während der Installation kann es helfen, den `node_modules` Ordner und die _pnpm-lock.yaml_ zu löschen und anschließend erneut zu installieren. - Prüfen, dass `pnpm install` die _pnpm-lock.yaml_ nicht anpasst, wenn das nicht wirklich gewollt ist. ## Jest und SonarQube - Parameter testResultsProcessor, collectCoverage, coverageReporters führen zu _Unknown option_ warnings während jeden Tests, wenn sie in der jeweiligen _jest.config.ts_ definiert sind. Werden sie dagegen als CLI Parameter beim Start der Tests übergeben, wird keine Warnung produziert. - Es können mehrere Tests parallel laufen mittel `nx run-many --target=test --parallel 8`. Tests sollten dann nicht zusätzlich mit Jest's _maxWorkers_ Parameter parallelisiert werden. ## Docker build Base Image: Wird manuell von Entwicklern gebaut, nach Änderungen an package.json. ``` bin/nx-build-base.sh ``` Anwendungsimage - wird in der Regel vom Jenkins gebaut. - APPNAME: Name der App im Verzeichnis apps/ - Versionierung steuert Jenkins - build-arg CONFIGURATION steuert production build ``` docker buildx build --push --platform linux/amd64 --tag docker.ozg-sh.de/APPNAME:x.x.x --build-arg CONFIGURATION=production -f apps/APPNAME/Dockerfile . ```