@angular-devkit/schematics
22.2.5 · 28 Oct 2026MIT27.1M / weekRepositorynpmAtom feed
21.2.29 is the newest release of 21.x.
In short
3 breaking
- breaking
The
ngcommands will no longer automatically detect and usecnpmas the package manager. As an alternative use the.npmrcfile to ensure npm uses the cnpm registry. - breaking
TypeScript versions older than 5.9 are no longer supported.
- breaking
The
javascriptEnabledoption for Less is no longer supported. Projects relying on inline JavaScript within Less files will need to refactor their stylesheets to remove this dependency.
Release note
@angular/cli
| Commit | Description |
|---|---|
| feat - 58d101d5e | add --json output to ng version |
| feat - d014630fa | add advanced filtering to MCP example search |
| feat - 6d3a3c579 | add ai-tutor mcp tool |
| feat - 1c06b16a9 | add builder info to list_projects MCP tool |
| feat - 301b50da4 | add fallback support for packages without direct ng add functionality |
| feat - 3040b777e | add style language detection to list_projects tool |
| feat - 45024e836 | add unit test framework detection to list_projects tool |
| feat - 104c90768 | enhance ng version output with more details |
| feat - 286b6204c | make documentation search tool version-aware |
| feat - 406315d09 | make find_examples tool version-aware |
| feat - 68e711307 | make get_best_practices tool version-aware |
| feat - 50453fdee | overhaul ng version command output |
| feat - 1ee9ce3c9 | promote MCP find_examples tool to a stable tool |
| feat - 0d53e82d5 | provide detailed peer dependency conflict errors in ng add |
| feat - f513089e2 | remove direct support for cnpm |
| fix - c17d7a929 | add schema versioning and metadata to example database |
| fix - dbf1aaf70 | add snippet support to example search MCP tool |
| fix - dfb4242b3 | add vitest to version command output |
| fix - 11cee1acb | correct boolean parsing in MCP example front matter |
| fix - 122a8c0e2 | correct frontmatter parsing in MCP examples tool |
| fix - 431106559 | correct query in find_examples to prevent runtime error |
| fix - def412a55 | enhance find_examples MCP tool with structured output |
| fix - 0922a033f | improve JSON schema parsing for command options |
| fix - f099c9157 | improve list_projects MCP tool to find all workspaces in monorepos |
| fix - 1be35b343 | promote zoneless migration MCP tool to stable |
| fix - e5aed6d65 | show planned actions in ng add dry run |
| fix - 4deac3ec7 | support multi-database search in find_examples MCP tool |
| perf - aeb49dd52 | cache dependency lookups during ng add |
| perf - 5e534090e | parallelize peer dependency checks in ng add |
@schematics/angular
| Commit | Description |
|---|---|
| feat - e417c89f9 | Add addTypeToClassName option to relevant schematics |
| feat - ede5e52bc | add include option to jasmine-to-vitest schematic |
| feat - c119910f4 | add AGENTS.md support to ai-config schematic |
| feat - d0d2a17b8 | add Jasmine spy API transformations to jasmine-to-vitest schematic |
| feat - e7d955bed | add matcher transformations to jasmine-to-vitest schematic |
| feat - 629f5cb18 | add misc transformations to jasmine-to-vitest schematic |
| feat - 4912f3990 | add Tailwind CSS option to application schematic and ng new |
| feat - 2a518016d | Applications are zoneless by default |
| feat - 2ffc527b1 | configure Vitest for new projects and allow runner choice |
| feat - 58474ec7d | introduce initial jasmine-to-vitest unit test refactor schematic |
| feat - 9f255f2b3 | set packageManager in package.json on new projects |
| feat - 4e6c94f21 | support different file name style guides in ng new |
| fix - 77741f5ee | add 'update-typescript-lib' migration |
| fix - f89750b27 | add addImports option to jasmine-vitest schematic |
| fix - 9dab5780a | add fixture.whenStable in spec files when zoneless apps |
| fix - 8f0f6a5f1 | add migration to update moduleResolution to bundler |
| fix - e8feba9ee | add missing typeSeparator to main.ts.template file |
| fix - 515b09c4f | add Vitest config generation and runner checks |
| fix - 0e83fe1a8 | add warnings and improve Karma config generation |
| fix - b91fa31f2 | align Karma project generation with unified unit-test builder |
| fix - c967a447c | correct spacing in application spec tsconfig |
| fix - 00d941c43 | correct style guide paths for standalone components |
| fix - e33e77d12 | flag '--file-name-style-guide=2016' - wrong import in main.ts |
| fix - f35b9f331 | improve comment preservation in jasmine-to-vitest |
| fix - 6615fcf03 | issues in apps generated with '--file-name-style-guide=2016' flag |
| fix - e304821d5 | make ai-config schematic non-destructive |
| fix - 512ad282a | preserve blank lines in jasmine-to-vitest schematic |
| fix - b524ba426 | remove empty i18n-extract target for new projects |
| fix - 8e6e0a293 | remove explicit flag for host bindings |
| fix - afb4d3e37 | remove extra space before async in spec templates |
| fix - b983ea8e5 | respect skip-install for tailwind schematic |
| fix - 54c4eae2a | transform Jasmine type annotations in jasmine-to-vitest schematic |
| perf - 14c0a9bac | optimize AST traversal utilities |
@angular-devkit/build-angular
| Commit | Description |
|---|---|
| fix - 6e395fc0c | ensure vitest code coverage handles virtual files correctly |
| fix - 53899511a | expand jest and jest-environment-jsdom to allow version 30 |
| fix - 7a8c94615 | make zone.js optional in server and app-shell builders |
@angular/build
| Commit | Description |
|---|---|
| feat - 00426e315 | add --list-tests flag to unit-test builder |
| feat - a908bf3d4 | add 'filter' option to unit-test builder |
| feat - 3e0209d0a | add browserViewport option for vitest browser tests |
| feat - 3b7dabbf1 | add advanced coverage options to unit-test builder |
| feat - c0b00d78e | add reporter output file option for unit-test |
| feat - 66dd6dd83 | allow options for unit test reporters |
| feat - a90bea5b5 | support .test.ts files by default in unit test builder |
| fix - b2f048773 | add --ui option for Vitest runner |
| fix - 530d9270e | add define option to dev-server |
| fix - b554bd73a | add temporary directory cleanup for Vitest executor |
| fix - c6176f6df | add upfront dependency validation for unit-test runners |
| fix - 63c98741a | add webcontainer support for Vitest browser provider |
| fix - fcdbf6c19 | allow globals to be set to false |
| fix - 542d52868 | allow custom runner configuration file for unit-test |
| fix - 0505f954d | allow unit-test progress option passthrough for building |
| fix - 931c62d20 | allow unit-test runner config with absolute path |
| fix - a11dd31f0 | configure Vitest cache to use Angular cache |
| fix - abf003268 | correct Vitest builder watch mode execution |
| fix - f05ffd104 | correct Vitest coverage include handling for virtual files |
| fix - cd5c92b99 | correct Vitest coverage reporting for test files |
| fix - 07f712253 | correctly handle absolute paths and casing in test discovery |
| fix - bf468e1eb | direct check include file exists in unit-test discovery |
| fix - 50e330d33 | disable glob directory expansion when finding tests |
| fix - 49b65aba8 | disable Vitest test isolation by default |
| fix - 1529595d4 | drop support for TypeScript 5.8 |
| fix - a44f8fa94 | dynamically select Vitest DOM environment |
| fix - ae35543af | enhance Vitest config merging and validation |
| fix - fec106b60 | enhance Vitest dependency externalization and pre-bundling |
| fix - f7c4a4c1d | enhance Vitest resolution for optimal package loading |
| fix - ee5e127d5 | ensure ɵgetOrCreateAngularServerApp is always defined after errors |
| fix - 0830f4fb5 | ensure TestBed cleanup hooks are always registered |
| fix - 41b12509a | ensure TestBed setup is robust in non-isolated Vitest |
| fix - 55145f582 | ensure Vitest setup files are executed in order |
| fix - 3478aa332 | exclude .angular from coverage instrumentation |
| fix - 7c529c1bc | externalize Angular dependencies in Vitest runner |
| fix - 69c3b1226 | improve error handling in unit-test builder |
| fix - bab5806c2 | introduce vitest-base.config for test configuration |
| fix - 73621998f | normalize paths for Vitest runner output files |
| fix - fa5c92346 | prioritize string type for runnerConfig schema |
| fix - d0787c11d | provide default excludes for vitest coverage |
| fix - ac10f323e | relax requirement for files to be in TS compilation |
| fix - 139758586 | remove deprecated javascriptEnabled option for Less |
| fix - 6576bb598 | remove explicit test isolation configuration |
| fix - 9132e6af9 | resolve browser provider packages using project resolver |
| fix - 26127bd3b | resolve PostCSS plugins relative to config file |
| fix - dae732059 | serve build assets and styles in vitest |
| fix - 705af2278 | set coverage report directory to coverage/project-name |
| fix - 0851d2eae | show full aggregate errors from vitest |
| fix - cc2668f57 | simplify SSL handling for ng serve with SSR (#31723) |
| fix - 907eabdd3 | support ESM PostCSS plugins |
| fix - 62938e799 | update vitest to 4.0.6 and remove coverage workaround |
Breaking Changes
@angular/cli
- breaking
The
ngcommands will no longer automatically detect and usecnpmas the package manager. As an alternative use the.npmrcfile to ensure npm uses the cnpm registry.
@angular/build
- breaking
TypeScript versions older than 5.9 are no longer supported.
- breaking
The
javascriptEnabledoption for Less is no longer supported. Projects relying on inline JavaScript within Less files will need to refactor their stylesheets to remove this dependency.