unstale

npm / @angular/cli

@angular/cli

What changed in @angular/cli 20 to 22, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

31 breaking15 security7 deprecations23 new APIs and options14 performance41 behavior and defaults79 tooling145 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@angular/cli 22172 changes

Breaking changes 18

  • A prerendering failure now fails the build and excludes the affected routes.

    22.1.7release notes

  • The CLI no longer searches the current directory for bare executable names on Windows.

    22.1.4release notes

  • Updating catalog packages now aborts and guides developers through manual mitigation when needed.

    22.1.0release notes

  • The CLI no longer allows a registry environment variable to override Yarn's registry during updates.

    22.1.0release notes

  • All route parameters are replaced when resolving relative redirects.

    22.0.6release notes

  • Removes the unused outDir setting from the generated app tsconfig.

    22.0.5release notes

  • The default workspace VS Code mcp.json configuration is removed.

    22.0.3release notes

  • Options now take precedence over environment variables.

    22.0.2release notes

  • Application builder output paths are restricted to the output directory.

    22.0.1release notes

  • SSR no longer falls back to CSR for requests that fail host validation; unrecognized Host headers return 400, so valid hosts must be configured.

    22.0.0release notes

  • The package is no longer available; the architect CLI tool has moved to @angular-devkit/architect.

    22.0.0release notes

  • The experimental Jest builder has been removed.

    22.0.0release notes

  • The experimental Web Test Runner builder has been removed.

    22.0.0release notes

  • istanbul-lib-instrument is now an optional peer dependency; Karma projects using code coverage must ensure it is installed.

    22.0.0release notes

  • Node.js v20 is no longer supported; the minimum supported versions are v22.22.0 and v24.13.1.

    22.0.0release notes

  • The application builder option experimentalPlatform is renamed to platform.

    22.0.0release notes

  • The dev server gives PORT highest priority, overriding angular.json port settings and the --port flag, including the default port 4200.

    22.0.0release notes

  • Proxy headers require explicit opt-in; when trustProxyHeaders is true, all X-Forwarded-* headers are supported.

    22.0.0release notes

Security 6

  • Adds the CSP nonce to stylesheet and modulepreload link elements.

    22.2.3release notes

  • Angular SSR: Path Traversal to Sibling Directories in CommonEngine on Windows

    20.3.36, 21.2.23, 22.1.7security advisoryrelease notesrelease notesrelease notes

  • The loader preserves integrity and crossorigin attributes.

    22.1.5release notes

  • The best-practices tool enforces MCP roots and throws when a workspace is outside them; it also handles errors from isAllowedWorkspacePath.

    22.1.5release notes

  • The builder prevents OS command injection.

    22.0.5release notes

  • Dynamically loaded modules receive subresource integrity validation.

    22.0.0release notes

Deprecations 6

  • The splitting option is deprecated because disabling code splitting is no longer needed with Vitest 5.

    22.2.0release notes

  • This API is deprecated; use the standard Web API TextDecoder instead.

    22.1.0release notes

  • This API is deprecated; use the standard Web API TextEncoder instead.

    22.1.0release notes

  • CommonEngine APIs are deprecated in favor of AngularNodeAppEngine or AngularAppEngine.

    22.0.0release notes

  • The @ngtools/webpack loader and plugin are deprecated; use @angular/build instead.

    22.0.0release notes

  • Webpack builders in build-angular and build-webpack are deprecated; use @angular/build builders instead.

    22.0.0release notes

New APIs and options 8

  • Array-form proxy configurations support a string context.

    22.2.2release notes

  • The Vitest browser provider ng-add now adds the browsers option to angular.json.

    22.2.1release notes

  • Adds the --root command-line option to mcp.

    22.2.0release notes

  • The unit-test builder gains an option to enable code splitting.

    22.1.7release notes

  • Vitest isolation can now be disabled from the builder.

    22.0.1release notes

  • The headers option can configure Access-Control-Allow-Origin.

    22.0.0release notes

  • The unit-test builder adds an isolate option.

    22.0.0release notes

  • The unit-test builder adds a quiet option to suppress build noise in unit tests.

    22.0.0release notes

Performance 12

  • Resolves asset patterns concurrently with bounded concurrency.

    22.2.3release notes

  • Aggregate worker allocation is bounded across dominant files.

    22.2.1release notes

  • Concurrent worker allocation is bounded for dominant files.

    22.2.1release notes

  • The worker no longer loads compiler-cli and TypeScript.

    22.2.1release notes

  • Chokidar no longer scans unimported node_modules in watch mode.

    22.2.1release notes

  • Reduces watcher debounce latency for faster incremental rebuilds.

    22.2.0release notes

  • Updating the sourcemap ignore list avoids full JSON parsing.

    22.1.8release notes

  • Prerender routes are batched and in-memory server bundles are shared.

    22.1.6release notes

  • Releases build resources earlier when not running in watch mode.

    22.1.3release notes

  • Avoids buffering the request body when sanitizing headers.

    22.1.3release notes

  • Semaphore backpressure throttling is implemented in JavaScriptTransformer.

    22.0.2release notes

  • Registry query counts are optimized by fetching package metadata lazily.

    22.0.1release notes

Behavior and default changes 23

  • Always uses AOT when extracting i18n messages.

    22.2.3release notes

  • Uses the chokidar watcher when followSymlinks is enabled.

    22.2.0release notes

  • Defaults preloadInitial to false when serviceWorker is enabled.

    22.2.0release notes

  • Recursively ignores output and cache paths while watching.

    22.2.0release notes

  • Temporary package installations are isolated from a parent Yarn workspace.

    22.1.7release notes

  • Supports case-insensitive and alternative license file names.

    22.1.3release notes

  • Always installs the package to inspect its manifest on disk for schematics.

    22.1.3release notes

  • Chunk optimization now uses Rolldown by default.

    22.1.0release notes

  • Angular SSR now supports the standard Forwarded header.

    22.1.0release notes

  • The persistent build cache is shared across Git worktrees.

    22.1.0release notes

  • Chunk optimization is now enabled for server builds.

    22.1.0release notes

  • The Istanbul coverage provider is favored when browser testing is enabled.

    22.0.8release notes

  • The semantic affected-file walk is skipped when type checking is disabled.

    22.0.8release notes

  • The Karma runner now falls back to the build target’s preserveSymlinks option.

    22.0.6release notes

  • The unit-test builder now inherits preserveSymlinks from the build target.

    22.0.5release notes

  • Non-SSG page lookups are no longer cached.

    22.0.2release notes

  • Semaphore backpressure throttling is implemented in PackageManager.

    22.0.2release notes

  • JSON imports are excluded from Vite dependency optimization.

    22.0.1release notes

  • Migrations of the same version are no longer sorted alphabetically.

    22.0.1release notes

  • On the first run, schematic detection falls back to the local package.json.

    22.0.1release notes

  • Chunk optimization is enabled by default with heuristics.

    22.0.0release notes

  • Generated components now default to OnPush change detection.

    22.0.0release notes

  • Generated workspaces rely on the strict template default.

    22.0.0release notes

Tooling 33

  • Disables Vitest fsModuleCache in the unit-test builder.

    22.2.3release notes

  • Sorts discovered unit-test files for deterministic builds.

    22.2.3release notes

  • Emitted HTML assets are now served in the dev-server.

    22.2.1release notes

  • The migration tool now skips components that have a change detection strategy.

    22.2.1release notes

  • Supports splitting browser and server stats JSON files for easier consumption.

    22.2.0release notes

  • Pre-compiles critical CSS plans at build time.

    22.2.0release notes

  • Compiles only included test files.

    22.2.0release notes

  • Code splitting is enabled for Vitest browser tests.

    22.1.7release notes

  • The dev-server Vite cache is kept local to each worktree.

    22.1.7release notes

  • Side-effect annotations are ignored in unit test builds.

    22.1.6release notes

  • The refactor-jasmine-vitest schematic transforms fail() calls to expect.fail().

    22.1.5release notes

  • The i18n inliner traverses the AST with an iterative post-order walker.

    22.1.5release notes

  • Code splitting is disabled for unit test builds.

    22.1.5release notes

  • The Angular schematic generates CLAUDE.md for Claude Code instead of AGENTS.md.

    22.1.4release notes

  • A target is set for Rolldown dependency prebundling in the Vite dev server.

    22.1.4release notes

  • Packages with built-in schematics are added to devDependencies only.

    22.1.2release notes

  • The CLI supports npm 12 metadata arrays and error formats, improving compatibility when using npm 12.

    22.1.1release notes

  • The generated AI configuration now includes Angular MCP server configuration.

    22.1.0release notes

  • A built-in SQLite cache store is available as a fallback.

    22.1.0release notes

  • Builds emit debug IDs to support stable subresource integrity hashes.

    22.1.0release notes

  • Declare devserver_start as not read-only, allowing tools to treat it as a state-changing operation.

    22.0.9release notes

  • Declare devserver_stop as not read-only, allowing tools to treat it as a state-changing operation.

    22.0.9release notes

  • Dependency resolution now supports subproject dependencies in pnpm workspaces.

    22.0.7release notes

  • Library unit tests now automatically inject localize/init.

    22.0.5release notes

  • Library unit tests now load zone.js dynamically.

    22.0.5release notes

  • Registry metadata fetching is supported when using the bun package manager.

    21.2.15, 22.0.2release notesrelease notes

  • The migration now uses null objects and callbacks.

    22.0.1release notes

  • The Karma-to-Vitest migration converts fakeAsync fake timers and migrates flush behavior when used in beforeEach.

    22.0.0release notes

  • The Vitest runner supports Istanbul coverage.

    22.0.0release notes

  • An update migration is added to migrate Karma to Vitest.

    22.0.0release notes

  • ng generate uses the service decorator.

    22.0.0release notes

  • Angular CLI adds support for Node.js 26.0.0.

    22.0.0release notes

  • The Vitest unit test runner supports runtime Zone.js detection.

    22.0.0release notes

Fixes and other changes 66

  • Avoids invalidating the diagnostic cache when a stylesheet changes.

    22.2.3release notes

  • Coalesces external watcher directories to avoid the macOS FSEvents limit.

    22.2.3release notes

  • Accepts array indices with multiple digits.

    22.2.3release notes

  • Continues to work when the package manager is not installed.

    22.2.3release notes

  • Resolves package names in npm workspace members.

    22.2.3release notes

  • Preserves preload metadata for nested empty-path routes.

    22.2.3release notes

  • Resolves relative redirects against the parent route.

    22.2.3release notes

  • Preserves query parameters on relative route redirects.

    22.2.3release notes

  • Ensures Sass importers return global Promise instances.

    22.2.3release notes

  • Avoids stack overflow when chaining many rules.

    22.2.3release notes

  • The migration now keeps the workspace build version.

    22.2.3release notes

  • Keeps the Vite server file watcher disabled in Vitest watch mode.

    22.2.3release notes

  • The SSR dev server preserves the Host header when proxying.

    22.2.2release notes

  • Glob entries in proxy configuration retain their order.

    22.2.2release notes

  • The compiler is now loaded for Vitest TestBed initialization.

    22.2.1release notes

  • The loader now encodes script type.

    22.2.1release notes

  • Spurious polling change events are now deduplicated.

    22.2.1release notes

  • Component updates are reset on each dev-server SSR page request.

    22.2.1release notes

  • The cache now preserves nested workspace paths.

    22.2.1release notes

  • Intermediate files are no longer sharded under worker surplus.

    22.2.1release notes

  • Batch locales are processed sequentially in the worker.

    22.2.1release notes

  • CLI options now correctly parse inline boolean values.

    22.2.1release notes

  • Standalone expression statements are no longer incorrectly marked as pure.

    22.2.1release notes

  • Includes inline component stylesheets among referenced watch files.

    22.2.0release notes

  • Runs setup file hooks for each spec file when coverage is enabled.

    22.2.0release notes

  • Auto-CSP supports standard JavaScript MIME types and case insensitivity.

    22.1.9release notes

  • Unknown options are now named in schema validation errors, making configuration problems easier to identify.

    22.1.9release notes

  • strictPort is disabled when port 0 is used in the dev-server.

    22.1.8release notes

  • The pathname is decoded when constructing the server asset path.

    22.1.7release notes

  • Binary values are preserved in the SQLite cache store.

    22.1.7release notes

  • The web request signal is aborted when the corresponding Node.js request is aborted.

    22.1.6release notes

  • The error message for top-level await is corrected to avoid misleading developers.

    22.1.5release notes

  • The build prevents syntax corruption for Crockford-style enum IIFEs.

    22.1.4release notes

  • The build counts statically imported chunks in the initial total.

    22.1.4release notes

  • The build returns direct file contents for non-Angular TypeScript files.

    22.1.4release notes

  • The build prevents syntax corruption in the oxc transform.

    22.1.4release notes

  • The platform is destroyed when the response stream is cancelled.

    22.1.4release notes

  • Paths in setupFiles are normalized to POSIX for the Vitest runner.

    22.1.4release notes

  • The build returns only the lowest version per target engine.

    22.1.4release notes

  • The guard generator imports UrlSegment instead of using subPath.

    22.1.4release notes

  • Prevents the build process from hanging after an unhandled error.

    22.1.3release notes

  • Retains watched files when an error occurs in the load result cache.

    22.1.3release notes

  • Correctly reports available package updates when running ng update without arguments.

    22.1.3release notes

  • Discovers migrations from installed packages when registry metadata omits them.

    22.1.3release notes

  • Settles when the client disconnects.

    22.1.3release notes

  • Prevents IIFE wrappers from interleaving for adjacent classes in minified files.

    22.1.2release notes

  • Paths from sandboxed execroots are rewritten when running under Bazel.

    22.1.1release notes

  • Update resolution now respects client-side release age settings.

    22.1.0release notes

  • Updates now resolve the correct registry name when package dependencies use npm alias syntax.

    22.1.0release notes

  • The CLI now reverts package.json changes if installation tasks fail during an update.

    22.1.0release notes

  • Safeguard the Karma builder stream controller when it is closed.

    22.0.9release notes

  • Import map integrity keys are now validated as URL-like specifiers.

    22.0.8release notes

  • MCP devserver tool names now conform to the spec regex.

    22.0.8release notes

  • Metafile paths are remapped when the workspace root is a symlink or junction.

    22.0.8release notes

  • Custom config options are preserved in runnerConfig for Vitest.

    22.0.8release notes

  • Drive letter casing is canonicalized for the workspace root on Windows.

    22.0.8release notes

  • Temporary installs now copy the packageManager field and Yarn configuration.

    22.0.7release notes

  • Builder-injected i18n locale data is no longer externalized.

    22.0.6release notes

  • All Vite ID prefixes are stripped from minified code when external dependencies are present.

    22.0.6release notes

  • Update bootstrapping now respects the release age policy.

    21.2.18, 22.0.5release notesrelease notes

  • The command handler now handles package manager errors gracefully.

    22.0.5release notes

  • Response headers are preserved during redirects.

    22.0.5release notes

  • The refactor-jasmine-vitest schematic now maps the browserMode option correctly.

    22.0.1release notes

  • The registry option is now validated as a URL.

    22.0.1release notes

  • Temporary package installation is isolated from the parent pnpm workspace.

    22.0.1release notes

  • The schematic now safely comments out multiline statements during refactoring.

    22.0.1release notes

@angular/cli 21166 changes

Breaking changes 11

  • Removes forceAuth and unscoped credential parsing from registry credential handling.

    21.2.15release notes

  • Asset input paths are asserted to be within the workspace root.

    21.2.13release notes

  • The webpack dev-server no longer applies an unconditional CORS wildcard.

    21.2.13release notes

  • Values of x-forwarded-prefix that start with a backslash are disallowed.

    20.3.21, 21.2.3release notesrelease notes

  • Invalid package manager versions are now rejected with an error.

    21.2.0release notes

  • Using Vitest runtime mocking now fails explicitly.

    21.2.0release notes

  • The library tsconfig template no longer includes inlineSources.

    21.0.4release notes

  • ng commands no longer automatically detect and use cnpm; use .npmrc to configure npm to use the cnpm registry.

    21.0.0release notes

  • The Less javascriptEnabled option is no longer supported; stylesheets using inline JavaScript must be refactored.

    21.0.0release notes

  • TypeScript versions older than 5.9 are no longer supported.

    21.0.0release notes

  • Vitest test isolation is disabled by default, and explicit test isolation configuration is removed.

    21.0.0release notes

Security 7

Deprecations 1

New APIs and options 15

  • Adds support for configuring trusted proxy headers via an environment variable.

    19.2.27, 20.3.27, 21.2.9release notesrelease notesrelease notes

  • The MCP devserver start tool supports a custom port.

    21.2.5release notes

  • Introduces a DI token to signal the route discovery process.

    21.2.1release notes

  • The unit-test builder now supports a headless option.

    21.2.0release notes

  • The jasmine-vitest schematic adds a browserMode option.

    21.1.0release notes

  • The SSR SSL plugin supports the NODE_EXTRA_CA_CERTS environment variable.

    21.0.3release notes

  • The Vitest coverage reportsDirectory option can now be overridden.

    21.0.2release notes

  • The library schematic now supports the testRunner option.

    21.0.1release notes

  • Adds the addTypeToClassName option to relevant schematics.

    21.0.0release notes

  • Adds a define option to the dev-server.

    21.0.0release notes

  • ng new supports different file name style guides.

    21.0.0release notes

  • Adds an include option to the jasmine-to-vitest schematic.

    21.0.0release notes

  • Adds JSON output to ng version, which also reports more details.

    21.0.0release notes

  • Unit tests can use a custom runner configuration file, including an absolute path.

    21.0.0release notes

  • Adds a Tailwind CSS option to the application schematic and ng new.

    21.0.0release notes

Performance 2

  • Avoids redundant package version resolution.

    21.2.2release notes

  • Package manager discovery now uses stat-based probing.

    21.2.0release notes

Behavior and default changes 17

  • External packages are used for polyfills only when no local files are present.

    21.2.3release notes

  • Custom headers are now supported in redirect responses.

    20.3.21, 21.2.3release notesrelease notes

  • Process environment variables are passed to prerender workers.

    20.3.20, 21.2.2release notesrelease notes

  • Extensionless assets are now served without transformation.

    21.2.0release notes

  • Argument parsing now infers boolean types for the string values 'true' and 'false'.

    21.1.2release notes

  • Argument parsing now infers boolean types for the string values 'true' and 'false'.

    21.1.2release notes

  • Vitest dependency checks are loosened when runnerConfig is used.

    21.1.2release notes

  • Allows application assets to be located in the workspace root.

    21.1.1release notes

  • Uses a project-local temporary directory.

    21.1.0release notes

  • SSR processing is skipped for well-known non-Angular URLs such as favicon.ico.

    21.0.4release notes

  • Management of the Vitest UI option is now conditional.

    21.0.4release notes

  • The migration now silently skips build targets that already use one of the new builders.

    21.0.1release notes

  • The MCP documentation search tool now accounts for the Angular version.

    21.0.0release notes

  • Promotes the MCP find_examples tool to stable and adds version-aware search with structured output.

    21.0.0release notes

  • The MCP tool now accounts for the Angular version.

    21.0.0release notes

  • New applications are zoneless by default.

    21.0.0release notes

  • Promotes the zoneless migration MCP tool to stable.

    21.0.0release notes

Tooling 44

  • The update schematic expands package groups for newly added peer dependencies.

    21.2.14release notes

  • Initial package manager workspace awareness is introduced.

    21.2.9release notes

  • The MCP test tool uses the headless option.

    21.2.8release notes

  • MCP tools dynamically resolve the project’s Angular CLI executable.

    21.2.8release notes

  • Vitest validates V8 coverage support for browsers.

    21.2.8release notes

  • Compatibility checks are simplified, with special handling for local builds of new major versions.

    21.2.0release notes

  • MCP tools now use standardized workspace and project options.

    21.2.0release notes

  • Prettier's formatting list now includes Markdown files.

    21.2.0release notes

  • Generated workspaces now include a .prettierrc file and Prettier as a dev dependency.

    21.2.0release notes

  • Files modified by schematics are now formatted automatically.

    21.2.0release notes

  • File formatting is now integrated into update migrations.

    21.2.0release notes

  • The Angular schematic now supports adding Vitest browser providers.

    21.2.0release notes

  • The schematic now provides actionable feedback.

    21.2.0release notes

  • Vitest browser runs with Playwright using the operating system theme.

    21.2.0release notes

  • Warns when the production configuration is missing for a service worker.

    21.1.3release notes

  • Coverage thresholds can now be merged with Vitest runnerConfig.

    21.1.2release notes

  • Improves file system traversal and symlink handling in the MCP tool.

    21.1.0release notes

  • New workspaces include an MCP configuration file.

    21.1.0release notes

  • Adds MCP tools for testing, end-to-end testing, building, and running dev servers, and adds an experimental all tool group.

    21.1.0release notes

  • The unit-test builder directly supports ng-packagr.

    21.1.0release notes

  • Simplifies SSL handling when serving with SSR.

    21.1.0release notes

  • The migration generates a detailed report of its changes.

    21.1.0release notes

  • Adds signal forms lessons.

    21.1.0release notes

  • TestBed teardown is disabled during debugging in Vitest.

    21.1.0release notes

  • Injects source-map-support for browser tests.

    21.1.0release notes

  • Module-based application schematics now use provideZoneChangeDetection in the root module.

    21.0.5release notes

  • Custom middleware presents an Angular-tailored message.

    21.0.3release notes

  • Testing polyfills are injected in the Karma unit-test executor.

    21.0.3release notes

  • The built-in test main file conditionally provides Zone.js change detection.

    21.0.3release notes

  • Filename truncation was added to test discovery.

    21.0.2release notes

  • The Jasmine-to-Vitest migration now includes mock names in its createSpyObj transformation.

    21.0.1release notes

  • The ai-config schematic supports AGENTS.md.

    21.0.0release notes

  • Adds an ai-tutor MCP tool.

    21.0.0release notes

  • Introduces a schematic to refactor unit tests from Jasmine to Vitest, including transformations for spy APIs, matchers, and other constructs.

    21.0.0release notes

  • Adds builder information, style-language and unit-test-framework detection, and improved workspace discovery in monorepos.

    21.0.0release notes

  • Adds advanced filtering, snippet support, and multi-database search to the MCP example search tool.

    21.0.0release notes

  • Adds a migration to update moduleResolution to bundler.

    21.0.0release notes

  • Adds fallback support for packages without direct ng add functionality and provides detailed peer dependency conflict errors.

    21.0.0release notes

  • Dry runs show planned actions; dependency lookups are cached and peer dependency checks are parallelized.

    21.0.0release notes

  • Overhauls command output with more details, including Vitest.

    21.0.0release notes

  • New projects set packageManager in package.json.

    21.0.0release notes

  • New projects are configured for Vitest and can choose a test runner.

    21.0.0release notes

  • The unit-test builder supports .test.ts files by default and adds options for listing and filtering tests, coverage, reporters, and browser viewport.

    21.0.0release notes

  • zone.js is optional in server and app-shell builders.

    21.0.0release notes

Fixes and other changes 69

  • Prevents the esbuild service from leaking child processes.

    21.2.14release notes

  • Virtual esbuild paths with (disabled) are ignored.

    21.2.12release notes

  • npm manifests represented as arrays are now parsed robustly.

    21.2.11release notes

  • The refactor adds missing imports for the focus and skip APIs.

    21.2.9release notes

  • Route segments are decoded when building and matching the route tree.

    21.2.9release notes

  • The router normalizes URLs for comparison.

    21.2.9release notes

  • The app-shell route format is fixed.

    21.2.8release notes

  • HMR component update path resolution uses rootDir.

    21.2.8release notes

  • MCP project scans ignore EBADF file system errors.

    21.2.8release notes

  • The prerender builder ensures routes have a leading slash.

    21.2.8release notes

  • Handles a missing package manager during analytics initialization.

    21.2.7release notes

  • Scopes the Chrome executable path to individual Playwright instances.

    21.2.6release notes

  • Preserves error stack traces during prerendering.

    21.2.6release notes

  • Ensures errors from transitive SCSS partials are tracked in watch mode.

    21.2.6release notes

  • Fixes sourceRoot resolution for the MCP projects tool.

    21.2.6release notes

  • Ensures Vitest mock patching runs only once.

    21.2.6release notes

  • Console methods are restored after the logger completes.

    21.2.4release notes

  • Migrate-only updates use the parsed package name.

    21.2.3release notes

  • Redirect responses now ensure unique values in the Vary header.

    20.3.21, 21.2.3release notesrelease notes

  • The vitest Playwright provider now allows any CHROME_BIN value.

    21.2.2release notes

  • Line endings are normalized when generating CSP hashes.

    21.2.2release notes

  • Assets are resolved correctly during i18n prerendering.

    21.2.2release notes

  • Package names are quoted conditionally based on host requirements when adding dependencies.

    21.2.2release notes

  • Preserves the exact requested version when adding a package.

    21.2.2release notes

  • The unit-test builder treats an empty browsers array as undefined.

    21.2.1release notes

  • Polyfills are bundled to preserve their execution order in the development server.

    21.2.1release notes

  • Improves header validation logic in SSR.

    21.2.1release notes

  • When the minimal option is enabled, schematics no longer add test dependencies.

    21.2.1release notes

  • Corrects dev dependency detection when running ng add.

    21.2.1release notes

  • Fixes a memory leak when serving applications with i18n.

    21.2.1release notes

  • Ensures group members are updated to the targeted version.

    21.2.1release notes

  • Formatting schematic changes now ignores unknown files.

    21.2.1release notes

  • The unit-test builder resolves style include paths relative to ng-package.json.

    21.2.1release notes

  • Non-relative imports are conditionally allowed with vi.mock.

    21.2.1release notes

  • The dev-server now normalizes allowedHosts.

    21.2.0release notes

  • Complex range specifiers are now quoted when passed to the package manager.

    21.2.0release notes

  • Prettier execution now enables the shell option on Windows.

    21.2.0release notes

  • Renamed files are now identified by their new path.

    21.2.0release notes

  • Scoped packages in Yarn Classic list output are now parsed correctly.

    21.2.0release notes

  • Absolute setup file paths are now resolved correctly in Vitest.

    21.1.4release notes

  • Addresses the Node.js deprecation DEP0190.

    21.1.3release notes

  • Prevents incorrect catch binding removal when downleveling for-await code.

    21.1.1release notes

  • Removes special characters from the jasmine-vitest report filename.

    21.1.1release notes

  • Removes a nonexistent link from the MCP response.

    21.1.1release notes

  • Corrects the VS Code MCP configuration generated for new projects.

    21.1.1release notes

  • Correctly spawns package managers on Windows.

    21.1.0release notes

  • Normalizes roots to POSIX to improve Windows compatibility.

    21.1.0release notes

  • Resolves test files correctly on Windows when using non-C drives.

    21.1.0release notes

  • Handles platform destruction during rendering.

    21.0.6release notes

  • Project targeting is corrected during Vitest debugging.

    21.0.5release notes

  • Non-prefixed requests are allowed when using SSR with a base href.

    21.0.4release notes

  • The status code is propagated to redirects.

    21.0.4release notes

  • Tests run when a compilation error is resolved.

    21.0.4release notes

  • The resolver now includes the browser condition for Vitest.

    21.0.4release notes

  • Well-known non-Angular URLs receive a leading slash.

    21.0.4release notes

  • The locale base href retains its leading slash.

    21.0.3release notes

  • The Jasmine-to-Vitest refactor now handles createSpyObj calls without a base name.

    21.0.1release notes

  • The Jasmine-to-Vitest migration improves the safety of transforming done callbacks.

    21.0.1release notes

  • Redirects no longer enter a loop with encoded query parameters.

    20.3.12, 21.0.1release notesrelease notes

  • Paths passed with --include are now normalized to POSIX format.

    21.0.1release notes

  • The migration now adds missing imports for lifecycle hooks, so migrated tests can reference those hooks.

    21.0.1release notes

  • The Jasmine-to-Vitest migration now handles jasmine.clock().mockDate() correctly.

    21.0.1release notes

  • The migration no longer sets esModuleInterop or moduleResolution when module is preserve.

    21.0.1release notes

  • The CLI now resolves dependencies correctly for the node modules directory check.

    21.0.1release notes

  • The Vitest runner now configures headless mode correctly per browser.

    21.0.1release notes

  • URL joining for prerender routes is now handled correctly.

    20.3.12, 21.0.1release notesrelease notes

  • The dev server now uses HTTP/1.1 when SSR is used with SSL.

    21.0.1release notes

  • Coverage paths now resolve correctly for JSDOM on Windows.

    21.0.1release notes

  • Redirects now handle X-Forwarded-Prefix and APP_BASE_HREF.

    20.3.12, 21.0.1release notesrelease notes

@angular/cli 2017 changes

Breaking changes 2

Security 2

Behavior and default changes 1

  • When resolving version ranges, deprecated versions are now used as a fallback if no non-deprecated version is found.

    20.3.28release notes

Tooling 2

Fixes and other changes 10

  • Common engine rendering options now allow all hosts to prevent validation errors.

    19.2.26, 20.3.26release notesrelease notes

  • Prevents removing @angular/localize when external packages are present.

    20.3.10release notes

  • Corrects the include configuration for spec files.

    20.3.10release notes

  • Locale handling in app-engine is improved.

    20.3.9release notes

  • Route matching for wildcard routes is improved.

    20.3.9release notes

  • Redirects from guards are now handled during prerendering.

    20.3.8release notes

  • The Angular locale data namespace is resolved correctly in esbuild.

    20.3.7release notes

  • Schematics now respect --force when a schematic contains host.create.

    20.3.7release notes

  • SSR now correctly handles routes with matrix parameters.

    20.3.7release notes

  • Server-side navigation now triggers a redirect.

    20.3.7release notes