Skip to content

Commit ffe053a

Browse files
authored
Chore/dependency updates (#88)
* chore: update dependencies to latest versions ## Angular - @angular/compiler: ^19.2.20 → ^22.0.1 (version mismatch fix) - @angular/compiler-cli: 19.2.19 → ^22.0.1 - @angular/cli: 21.2.2 → ^22.0.8 - @angular-devkit/build-angular: 21.2.19 → ^22.0.8 - Remove @angular/build override (19.2.22) ## TypeScript - typescript: ~5.6.3 → ~6.0.0 (required by Angular 22) - tsconfig.json: add ignoreDeprecations: '6.0' for baseUrl & downlevelIteration ## NgRx - @ngrx/schematics: ^19.0.0 → ^21.1.1 (align with other ngrx packages) ## ngx-translate v15 → v18 - TranslateModule removed: replaced with standalone TranslatePipe per component - TranslateModule.forRoot() → provideTranslateService({ lang, fallbackLang }) - HttpLoaderFactory → provideTranslateHttpLoader({ prefix, suffix }) - TranslateService.setDefaultLang removed: configured via provideTranslateService - currentLang is now a Signal: use currentLang() instead of currentLang ## Tailwind CSS v3 → v4 - tailwindcss: ^3.4.16 → ^4.3.3 - Add @tailwindcss/postcss: ^4.3.3 (replaces tailwindcss in postcss.config) - postcss.config.js: tailwindcss:{} → '@tailwindcss/postcss':{} - autoprefixer removed from postcss (built into Tailwind v4) - styles.scss: @tailwind directives → @import 'tailwindcss' - Plugin imports moved to CSS: @plugin '@tailwindcss/typography/forms' - Dark mode, theme, sources configured via CSS directives - tailwind.config.ts deleted (config now lives in styles.scss) - Tailwind plugins moved from dependencies → devDependencies - @tailwindcss/forms: ^0.5.9 → ^0.5.11 - @tailwindcss/typography: ^0.5.15 → ^0.5.20 - @tailwindcss/aspect-ratio removed (built into Tailwind v4) ## Other - zone.js: ^0.15.0 → ^0.16.0 - @ngx-translate/core: ^15.0.0 → ^18.0.0 - @ngx-translate/http-loader: ^8.0.0 → ^18.0.0 * fix: correct Tailwind v4 + Angular build integration - angular.json: migrate all builders from @angular-devkit/build-angular to @angular/build (official esbuild builder, removes deprecation warning) - postcss.config.js → postcss.config.json: @angular/build only reads JSON PostCSS config, not .js files - styles.scss → styles.css: Tailwind v4 requires a plain CSS file so PostCSS (@tailwindcss/postcss) runs before esbuild resolves imports; @source directive explicitly scans src/**/*.{html,ts} for utility classes - error.interceptor.ts: fix circular DI dependency (TranslateService → TranslateHttpLoader → HttpClient → interceptor → TranslateService) by using lazy inject(Injector) instead of eager inject(TranslateService) * fix: migrate Tailwind v3 opacity utilities to v4 slash syntax Replace deprecated bg-opacity-*, text-opacity-*, etc. with the Tailwind v4 slash syntax (e.g. bg-white/20, bg-black/50) across: - footer.component.html: bg-white bg-opacity-20 → bg-white/20 - header.component.html: bg-opacity-90 → bg-white/90 dark:bg-gray-900/90 - home.component.html: text-opacity-90, dark:bg-opacity-20 - api-demo.component.html: dark:bg-opacity-20 - features-demo.component.html: dark:bg-opacity-20 - loading-spinner.component.ts: bg-opacity-50 → bg-black/50 - modal.component.ts: bg-opacity-50 → bg-black/50 * chore: remove postcss.config.js (restored by lint-staged stash) * chore: reorder imports in modal.component.ts for consistency * chore: release v2.0.0 - Bump version to 2.0.0 (major: Angular 22, Tailwind 4, TypeScript 6) - Add docs/CHANGELOG.md with full migration notes - Update README badges and Key Features for Angular 22 / Tailwind 4 - Add Changelog link to Documentation section
1 parent 6332a3d commit ffe053a

38 files changed

Lines changed: 3231 additions & 6289 deletions

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# D-Stack Angular Template
22

3-
Angular 19 Starter-Template mit Tailwind CSS, NgRx, i18n, OpenAPI-Client-Generierung und GitHub-Pages-Deployment.
3+
Angular 22 Starter-Template mit Tailwind CSS 4, NgRx 21, i18n, OpenAPI-Client-Generierung und GitHub-Pages-Deployment.
44

5-
[![Angular](https://img.shields.io/badge/Angular-19.2-red?logo=angular)](https://angular.io)
6-
[![TypeScript](https://img.shields.io/badge/TypeScript-5.6-blue?logo=typescript)](https://www.typescriptlang.org/)
7-
[![Tailwind CSS](https://img.shields.io/badge/Tailwind-3.4-38bdf8?logo=tailwind-css)](https://tailwindcss.com)
5+
[![Angular](https://img.shields.io/badge/Angular-22-red?logo=angular)](https://angular.io)
6+
[![TypeScript](https://img.shields.io/badge/TypeScript-6.0-blue?logo=typescript)](https://www.typescriptlang.org/)
7+
[![Tailwind CSS](https://img.shields.io/badge/Tailwind-4.3-38bdf8?logo=tailwind-css)](https://tailwindcss.com)
88
[![GitHub Pages](https://img.shields.io/badge/Deploy-GitHub%20Pages-222?logo=github)](https://heyding.github.io/angular-tailwind-template/)
99

1010
## Live Demo
@@ -24,6 +24,7 @@ App läuft danach unter `http://localhost:4200`.
2424

2525
## Documentation
2626

27+
- [Changelog](docs/CHANGELOG.md)
2728
- [Customization Guide](docs/CUSTOMIZATION.md)
2829
- [Deployment Guide](docs/DEPLOYMENT.md)
2930
- [Pre-commit Hooks](docs/PRE-COMMIT-HOOKS.md)
@@ -45,10 +46,10 @@ Konfigurierbar sind u. a.:
4546

4647
## Key Features
4748

48-
- Angular 19 mit Standalone Components
49-
- Tailwind CSS 3 + Dark Mode
50-
- NgRx Store + lokale Persistenz
51-
- i18n (`de` / `en`)
49+
- Angular 22 mit Standalone Components und `@angular/build` (esbuild-nativ)
50+
- Tailwind CSS 4 + Dark Mode (CSS-first Konfiguration)
51+
- NgRx 21 Store + lokale Persistenz
52+
- i18n (`de` / `en`) via ngx-translate 18
5253
- OpenAPI-Client-Generierung (`ng-openapi-gen`)
5354
- Playwright Smoke Tests + Lighthouse CI
5455
- DSGVO-relevante Seiten (Datenschutz/Impressum/Cookie-Banner)

angular.json

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,16 @@
1515
"prefix": "app",
1616
"architect": {
1717
"build": {
18-
"builder": "@angular-devkit/build-angular:application",
18+
"builder": "@angular/build:application",
1919
"options": {
2020
"outputPath": "dist/angular-tailwind-template",
2121
"index": "src/index.html",
2222
"browser": "src/main.ts",
23-
"polyfills": [
24-
"src/polyfills.ts"
25-
],
23+
"polyfills": ["src/polyfills.ts"],
2624
"tsConfig": "tsconfig.app.json",
27-
"allowedCommonJsDependencies": [
28-
"deepmerge"
29-
],
30-
"assets": [
31-
"src/favicon.ico",
32-
"src/assets"
33-
],
34-
"styles": [
35-
"src/styles.scss"
36-
],
25+
"allowedCommonJsDependencies": ["deepmerge"],
26+
"assets": ["src/favicon.ico", "src/assets"],
27+
"styles": ["src/styles.css"],
3728
"scripts": []
3829
},
3930
"configurations": {
@@ -67,7 +58,7 @@
6758
"defaultConfiguration": "production"
6859
},
6960
"serve": {
70-
"builder": "@angular-devkit/build-angular:dev-server",
61+
"builder": "@angular/build:dev-server",
7162
"options": {
7263
"buildTarget": "angular-tailwind-template:build"
7364
},
@@ -82,24 +73,17 @@
8273
"defaultConfiguration": "development"
8374
},
8475
"extract-i18n": {
85-
"builder": "@angular-devkit/build-angular:extract-i18n"
76+
"builder": "@angular/build:extract-i18n"
8677
},
8778
"test": {
88-
"builder": "@angular-devkit/build-angular:karma",
79+
"builder": "@angular/build:karma",
8980
"options": {
9081
"main": "src/test.ts",
91-
"polyfills": [
92-
"src/polyfills.ts"
93-
],
82+
"polyfills": ["src/polyfills.ts"],
9483
"tsConfig": "tsconfig.spec.json",
9584
"karmaConfig": "karma.conf.js",
96-
"assets": [
97-
"src/favicon.ico",
98-
"src/assets"
99-
],
100-
"styles": [
101-
"src/styles.scss"
102-
],
85+
"assets": ["src/favicon.ico", "src/assets"],
86+
"styles": ["src/styles.css"],
10387
"scripts": []
10488
}
10589
}

docs/CHANGELOG.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Changelog
2+
3+
## [2.0.0] – 2026-07-25
4+
5+
### Breaking Changes
6+
7+
#### Angular 22
8+
- Alle `@angular/*`-Pakete von v19/v21 auf **v22.0.1** aktualisiert
9+
- `@angular/cli` und `@angular-devkit/build-angular` auf **v22.0.8**
10+
- Builder in `angular.json` von `@angular-devkit/build-angular:application` auf `@angular/build:application` migriert (esbuild-nativer Build ohne Webpack-Umweg)
11+
12+
#### TypeScript 6
13+
- `typescript` von `~5.6.3` auf **~6.0.0**
14+
- `tsconfig.json`: `"ignoreDeprecations": "6.0"` ergänzt (für `baseUrl` und `downlevelIteration`)
15+
16+
#### Tailwind CSS 4
17+
- `tailwindcss` von `^3.4.16` auf **^4.3.3**
18+
- `@tailwindcss/postcss` als separates PostCSS-Plugin hinzugefügt
19+
- `@tailwindcss/aspect-ratio` entfernt (in Tailwind v4 integriert)
20+
- `styles.scss``styles.css` (Sass entfällt; PostCSS verarbeitet CSS direkt)
21+
- CSS-Konfiguration statt `tailwind.config.ts`:
22+
- `@import "tailwindcss"` statt `@tailwind`-Direktiven
23+
- Plugins via `@plugin`, Dark Mode via `@variant dark`
24+
- Content-Pfade via `@source`
25+
- `postcss.config.js``postcss.config.json` (`@angular/build` liest nur JSON-Format)
26+
- Alle veralteten Opacity-Utilities migriert: `bg-opacity-*`, `text-opacity-*` → Slash-Syntax (`bg-black/50`, `text-white/90` usw.)
27+
28+
#### ngx-translate 18
29+
- `@ngx-translate/core` von `^15.0.0` auf **^18.0.0**
30+
- `@ngx-translate/http-loader` von `^8.0.0` auf **^18.0.0**
31+
- `TranslateModule` entfernt – alle Komponenten nutzen nun `TranslatePipe` (standalone)
32+
- Konfiguration in `app.config.ts` auf neue Provider-API migriert:
33+
- `provideTranslateService({ lang, fallbackLang })`
34+
- `provideTranslateHttpLoader({ prefix, suffix })`
35+
- `currentLang` ist jetzt ein Angular **Signal** → Aufruf als `currentLang()` (Klammern erforderlich)
36+
37+
#### NgRx 21
38+
- `@ngrx/store`, `@ngrx/effects`, `@ngrx/store-devtools` auf **v21.1.1**
39+
- `@ngrx/schematics` von `^19.0.0` auf **^21.1.1** angepasst
40+
41+
#### zone.js
42+
- `zone.js` von `^0.15.0` auf **^0.16.0**
43+
44+
---
45+
46+
### Bug Fixes
47+
48+
- **Circular DI (NG0200)**: `error.interceptor.ts` injizierte `TranslateService` eager während der Translations-initialisierung. Behoben durch Lazy-Injection via `inject(Injector)` mit `injector.get(TranslateService)` im `catchError`-Block.
49+
- **Footer-Banner-Icon**: `bg-white bg-opacity-20` (Tailwind v3) zeigte solides Weiß statt 20 % Transparenz. Behoben mit `bg-white/20`.
50+
51+
---
52+
53+
### Dependency Summary
54+
55+
| Paket | Vorher | Nachher |
56+
|---|---|---|
57+
| `@angular/*` | 19.x / 21.x | **22.0.x** |
58+
| `@angular/cli` | 21.2.x | **22.0.x** |
59+
| `typescript` | ~5.6.3 | **~6.0.0** |
60+
| `tailwindcss` | ^3.4.16 | **^4.3.3** |
61+
| `@tailwindcss/postcss` || **^4.3.3** *(neu)* |
62+
| `@ngx-translate/core` | ^15.0.0 | **^18.0.0** |
63+
| `@ngx-translate/http-loader` | ^8.0.0 | **^18.0.0** |
64+
| `@ngrx/*` | 19.x / 21.x | **21.1.1** |
65+
| `zone.js` | ^0.15.0 | **^0.16.0** |
66+
| `@tailwindcss/aspect-ratio` | ^0.4.x | *entfernt* |
67+
68+
---
69+
70+
## [1.0.0] – Initial Release
71+
72+
- Angular 19 Starter-Template
73+
- Tailwind CSS 3, NgRx, i18n (de/en)
74+
- OpenAPI-Client-Generierung
75+
- DSGVO-Seiten, Cookie-Banner
76+
- GitHub Pages Deployment

0 commit comments

Comments
 (0)