Skip to content

9.0 - Angular 21 & Playwright

Choose a tag to compare

@wlucha wlucha released this 21 Feb 08:10
· 9 commits to master since this release
5f428a5

Summary

Major upgrade of the Angular Starter project from Angular 20 to Angular 21, along with a full modernization of the development tooling stack.

Angular 21 Migration

  • Upgraded all @angular/* core packages, CLI, and Material to v21
  • Bumped TypeScript to 5.9.3 (required by Angular 21)
  • Updated @angular-eslint schematics and plugins to v21

Storybook v10

  • Upgraded Storybook from v8 to v10.2.10
  • Removed obsolete v8 addon packages (@storybook/addon-essentials, @storybook/blocks, etc.) that are no longer needed in v10
  • Aligned @storybook/angular and eslint-plugin-storybook to v10

Cypress → Playwright Migration

  • Removed Cypress and @cypress/schematic entirely
  • Added @playwright/test with Chromium, Firefox, and WebKit browser support
  • Created playwright.config.ts with auto-start of the Angular dev server
  • Migrated E2E test to Playwright syntax (tests/app.spec.ts)
  • npm run e2e now runs Playwright across all 3 browser engines ✅

DevDependencies Upgraded to Latest

  • ESLint → v10 (with @eslint/js and @eslint/eslintrc as explicit deps)
  • Jest → v30, jest-preset-angular → v16
  • @commitlint → v20, @babel/core → v7.29, babel-loader → v10
  • prettier → v3.8, @types/node → v25, @jsverse/transloco → v8
  • tailwindcss & @tailwindcss/postcss → v4.2

Dependency Resolution

  • Added .npmrc with legacy-peer-deps=true to handle ESLint v10 peer dependency conflicts with @angular-eslint (which hasn't updated its peer range yet)
  • Added overrides in package.json for @typescript-eslint/* TypeScript version compatibility
  • Added transformIgnorePatterns to Jest config for @jsverse ESM module support
  • Updated husky prepare script from deprecated husky install to husky

Verification

  • ✅ npm run build:prod — production build passes
  • ✅ npm run test:ci — all unit tests pass
  • ✅ npm run lint — linting passes (ESLint 10)
  • ✅ npm run e2e — 3/3 Playwright E2E tests pass (Chromium, Firefox, WebKit)