chore: upgrade Angular to 22 and Ionic to 9
This commit is contained in:
1 parent
512aa58949
commit
c5f9fa5e49
22 files changed
+7167
-8513
No files matched your search
+28
-1
@@ -5,7 +5,7 @@
|
||||
### Web development
|
||||
|
||||
- NVM
|
||||
- Node.js `lts/jod` (Node.js 22), matching `.nvmrc` and the release workflow
|
||||
- Node.js `lts/jod` (at least Node.js 22.22.3), matching `.nvmrc` and the release workflow
|
||||
- npm
|
||||
- Ionic CLI available as `ionic`
|
||||
|
||||
@@ -40,6 +40,10 @@ This also works in noninteractive Bash sessions that do not load `.bashrc`.
|
||||
Run each block from the project root. Stop if loading NVM or selecting Node fails;
|
||||
do not fall back to the system Node version.
|
||||
|
||||
Angular 22 requires TypeScript 6.0 and Node.js 22.22.3 or newer on the
|
||||
Node.js 22 line. If your installed `lts/jod` is older, run `nvm install lts/jod`
|
||||
after loading Bash NVM.
|
||||
|
||||
Install exact project dependencies with:
|
||||
|
||||
```bash
|
||||
@@ -99,6 +103,29 @@ For VS Code, install the recommended `esbenp.prettier-vscode` extension, select
|
||||
|
||||
Prettier is currently an editor workflow; the repository does not declare a Prettier npm dependency or formatting script. Do not claim a CLI formatting check exists unless one is added later.
|
||||
|
||||
## Dependency compatibility
|
||||
|
||||
Angular major upgrades must run `ng update` one major at a time. The Angular
|
||||
21 and 22 migrations preserve Zone.js with `provideZoneChangeDetection()`
|
||||
and explicitly select `ChangeDetectionStrategy.Eager` for existing components.
|
||||
Ionic 9 standalone components are imported from `@ionic/angular`.
|
||||
|
||||
ESLint 10 uses `eslint.config.cjs`; the old `.eslintrc.json` format is no longer
|
||||
supported. The flat configuration retains the Angular template and selector rules.
|
||||
Unused legacy ESLint plugins and the unused Jasmine spec reporter were removed.
|
||||
Tests use the replacement `@angular/platform-browser/testing` API, so the
|
||||
deprecated `@angular/platform-browser-dynamic` package is no longer needed.
|
||||
The unused `@angular/animations` package was also removed; Ionic manages its
|
||||
own animations.
|
||||
|
||||
The browser target follows Angular 22's widely available Baseline date,
|
||||
2026-05-07. Older browser versions outside that baseline are no longer targeted.
|
||||
|
||||
Two scoped npm overrides apply upstream security fixes: Angular's build package
|
||||
uses Vite 8.3.5 or newer within v8, and Capacitor's Xcode parser uses UUID 11.1.1
|
||||
or newer within v11. Xcode uses the compatible CommonJS `uuid.v4()` API.
|
||||
Revisit these overrides when upstream packages include the patched versions.
|
||||
|
||||
## Tauri workflow
|
||||
|
||||
Run Tauri commands through the npm script:
|
||||
|
||||
Reference in new issue
Block a user