@nx/angular - Migrations
The @nx/angular plugin provides various migrations to help you migrate to newer versions of angular projects within your Nx workspace. Below is a complete reference for all available migrations.
23.0.x
Section titled “23.0.x”update-23-0-0-update-with-module-federation-import
Section titled “update-23-0-0-update-with-module-federation-import”Version: 23.0.0-beta.0
Update the @nx/angular/module-federation import to use @nx/module-federation/angular.
Update withModuleFederation Import to New Package
Section titled “Update withModuleFederation Import to New Package”Updates the withModuleFederation and withModuleFederationForSSR imports to use @nx/module-federation/angular. The @nx/angular/module-federation re-export path was deprecated in Nx v20.2 and is now removed.
Examples
Section titled “Examples”Before
Section titled “Before”import { withModuleFederation, withModuleFederationForSSR,} from '@nx/angular/module-federation';import { withModuleFederation, withModuleFederationForSSR,} from '@nx/module-federation/angular';This migration runs for all projects in the workspace that depend on @nx/angular, ensuring imports are updated when migrating to Nx v23.
update-23-0-0-migrate-ngrx-generator-defaults
Section titled “update-23-0-0-migrate-ngrx-generator-defaults”Version: 23.0.0-beta.7
Split @nx/angular:ngrx generator defaults in nx.json across the @nx/angular:ngrx-root-store and @nx/angular:ngrx-feature-store generators.
Split @nx/angular:ngrx generator defaults across the replacement generators
Section titled “Split @nx/angular:ngrx generator defaults across the replacement generators”Splits any @nx/angular:ngrx generator defaults set in nx.json or in project-level project.json files across the two replacement generators: @nx/angular:ngrx-root-store (for root state) and @nx/angular:ngrx-feature-store (for feature state). The @nx/angular:ngrx generator was removed in Nx v23.
Shared options apply to both keys; barrels and parent are written only to @nx/angular:ngrx-feature-store (the @nx/angular:ngrx-root-store schema doesn’t accept them). The minimal option is written only to @nx/angular:ngrx-root-store because its semantics differ between the two new generators (see Notes). The deprecated module option is renamed to parent. The obsolete root toggle is dropped — intent is now expressed by which generator is invoked. Existing defaults already set under the new keys are preserved.
Examples
Section titled “Examples”Before
Section titled “Before”{ "generators": { "@nx/angular:ngrx": { "facade": true, "minimal": true, "barrels": true, "module": "libs/my-lib/src/lib/my-lib-module.ts" } }}{ "generators": { "@nx/angular:ngrx-root-store": { "facade": true, "minimal": true }, "@nx/angular:ngrx-feature-store": { "facade": true, "barrels": true, "parent": "libs/my-lib/src/lib/my-lib-module.ts" } }}The minimal option is intentionally not propagated to @nx/angular:ngrx-feature-store. In the deprecated @nx/angular:ngrx generator, minimal only gated root-state file generation and was a no-op for feature-state usage. In @nx/angular:ngrx-feature-store, minimal: true skips template generation while still wiring imports to the (now missing) files, which would produce broken modules.
The split is otherwise intentionally inclusive: shared options are written to both new keys so users can trim the ones they don’t want. CLI invocations of @nx/angular:ngrx (in shell scripts, CI, or package.json) are not migrated — update those manually to call @nx/angular:ngrx-root-store or @nx/angular:ngrx-feature-store.
update-23-0-0-migrate-create-nodes-v2-import
Section titled “update-23-0-0-migrate-create-nodes-v2-import”Version: 23.0.0-beta.24
Rename imports of createNodesV2 from @nx/angular/plugin to the canonical createNodes export.
Rename createNodesV2 imports to createNodes
Section titled “Rename createNodesV2 imports to createNodes”@nx/angular renamed its primary inferred-plugin export from createNodesV2 to createNodes. The createNodesV2 name is preserved as a deprecated alias for now, but new code should use createNodes.
This migration scans every .ts, .tsx, .cts, and .mts file in your workspace and rewrites named imports and re-exports of createNodesV2 from @nx/angular/plugin to createNodes.
Sample Code Changes
Section titled “Sample Code Changes”Before
Section titled “Before”import { createNodesV2 } from '@nx/angular/plugin';import { createNodes } from '@nx/angular/plugin';Aliases are preserved (createNodesV2 as cn becomes createNodes as cn), and if a file already imports both names ({ createNodes, createNodesV2 }) the redundant binding is dropped.
What is not rewritten
Section titled “What is not rewritten”Only static import/export named bindings from @nx/angular/plugin are rewritten. Namespace imports, dynamic import(...), require(...) destructuring, and property access such as plugin.createNodesV2 are left untouched — they keep working through the createNodesV2 runtime alias. Update those by hand if you want to drop the deprecated name everywhere.
rewrite-angular-internal-subpath-imports
Section titled “rewrite-angular-internal-subpath-imports”Version: 23.0.0-beta.25
Rewrites the now-removed deep @nx/angular/src/utils, @nx/angular/src/generators/utils and @nx/angular/src/generators/move/move-impl subpath imports to the new @nx/angular/internal entry. The executor/builder/generator schema and impl subpaths remain available and are left untouched.
22.6.x
Section titled “22.6.x”22.6.0-angular-eslint-package-updates
Section titled “22.6.0-angular-eslint-package-updates”Version: 22.6.0-beta.6
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^21.2.0 | Updated only |
@angular-eslint/eslint-plugin | ^21.2.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^21.2.0 | Updated only |
@angular-eslint/template-parser | ^21.2.0 | Updated only |
@angular-eslint/utils | ^21.2.0 | Updated only |
@angular-eslint/schematics | ^21.2.0 | Updated only |
@angular-eslint/test-utils | ^21.2.0 | Updated only |
@angular-eslint/builder | ^21.2.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^21.2.0 | Updated only |
22.6.0-@angular-eslint-package-updates
Section titled “22.6.0-@angular-eslint-package-updates”Version: 22.6.0-beta.6
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-eslint/eslint-plugin | ^21.2.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^21.2.0 | Updated only |
@angular-eslint/template-parser | ^21.2.0 | Updated only |
@angular-eslint/utils | ^21.2.0 | Updated only |
@angular-eslint/schematics | ^21.2.0 | Updated only |
@angular-eslint/test-utils | ^21.2.0 | Updated only |
@angular-eslint/builder | ^21.2.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^21.2.0 | Updated only |
22.6.0-package-updates
Section titled “22.6.0-package-updates”Version: 22.6.0-beta.6
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular/cli | ~21.2.0 | Updated only |
@angular-devkit/build-angular | ~21.2.0 | Updated only |
@angular-devkit/core | ~21.2.0 | Updated only |
@angular-devkit/schematics | ~21.2.0 | Updated only |
@angular/build | ~21.2.0 | Updated only |
@angular/pwa | ~21.2.0 | Updated only |
@angular/ssr | ~21.2.0 | Updated only |
@schematics/angular | ~21.2.0 | Updated only |
@angular-devkit/architect | ~0.2102.0 | Updated only |
@angular-devkit/build-webpack | ~0.2102.0 | Updated only |
@angular/core | ~21.2.0 | Added if not installed |
@angular/material | ~21.2.0 | Updated only |
@angular/cdk | ~21.2.0 | Updated only |
@angular/google-maps | ~21.2.0 | Updated only |
ng-packagr | ~21.2.0 | Updated only |
22.6.0-module-federation-package-updates
Section titled “22.6.0-module-federation-package-updates”Version: 22.6.0-beta.10
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@module-federation/enhanced | ^2.1.0 | Updated only |
@module-federation/node | ^2.7.21 | Updated only |
22.4.x
Section titled “22.4.x”22.4.0-package-updates
Section titled “22.4.0-package-updates”Version: 22.4.0-beta.4
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular/cli | ~21.1.0 | Updated only |
@angular-devkit/build-angular | ~21.1.0 | Updated only |
@angular-devkit/core | ~21.1.0 | Updated only |
@angular-devkit/schematics | ~21.1.0 | Updated only |
@angular/build | ~21.1.0 | Updated only |
@angular/pwa | ~21.1.0 | Updated only |
@angular/ssr | ~21.1.0 | Updated only |
@schematics/angular | ~21.1.0 | Updated only |
@angular-devkit/architect | ~0.2101.0 | Updated only |
@angular-devkit/build-webpack | ~0.2101.0 | Updated only |
@angular/core | ~21.1.0 | Added if not installed |
@angular/material | ~21.1.0 | Updated only |
@angular/cdk | ~21.1.0 | Updated only |
@angular/google-maps | ~21.1.0 | Updated only |
ng-packagr | ~21.1.0 | Updated only |
22.3.x
Section titled “22.3.x”update-ssr-webpack-config-22-2-0
Section titled “update-ssr-webpack-config-22-2-0”Version: 22.3.0-beta.0
Updates webpack-based SSR configuration to use preserve module format and bundler module resolution.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=21.0.0 |
Updates Webpack-Based SSR Configuration
Section titled “Updates Webpack-Based SSR Configuration”Updates the TypeScript configuration and import syntax for webpack-based server-side rendering (SSR) projects. This migration sets module: "preserve" and moduleResolution: "bundler" in tsconfig.server.json to align with Angular’s build requirements, and updates server file imports from namespace imports (import * as express) to default imports (import express) to work correctly with the new module format.
Examples
Section titled “Examples”For webpack-based SSR projects (using @nx/angular:webpack-server or @angular-devkit/build-angular:server), the migration updates the tsconfig.server.json file:
Before
Section titled “Before”{ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", "target": "es2022", "module": "commonjs", "moduleResolution": "node", "types": ["node"], }, "files": ["src/main.server.ts", "src/server.ts"],}{ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "../../dist/out-tsc", "target": "es2022", "module": "preserve", "moduleResolution": "bundler", "types": ["node"], }, "files": ["src/main.server.ts", "src/server.ts"],}The migration also updates import statements in the server.ts file to use default imports instead of namespace imports:
Before
Section titled “Before”import * as express from 'express';import * as compression from 'compression';import * as cors from 'cors';
const app = express();app.use(compression());app.use(cors());import express from 'express';import compression from 'compression';import cors from 'cors';
const app = express();app.use(compression());app.use(cors());Projects that already have the correct TypeScript configuration or projects without a tsconfig.server.json file are not modified by this migration.
update-module-resolution-22-2-0
Section titled “update-module-resolution-22-2-0”Version: 22.3.0-beta.0
Update ‘module’ to ‘preserve’ and ‘moduleResolution’ to ‘bundler’ in TypeScript configurations for Angular projects.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=21.0.0-rc.3 |
Update module to preserve and moduleResolution to bundler in TypeScript configurations
Section titled “Update module to preserve and moduleResolution to bundler in TypeScript configurations”Updates the TypeScript module and moduleResolution compiler options to 'preserve' and 'bundler' respectively for Angular projects. These settings are required for Angular’s build system to work correctly with modern module resolution algorithms used by bundlers like Webpack, Vite, and esbuild.
Examples
Section titled “Examples”The migration updates TypeScript configuration files in Angular projects to set both compiler options:
Before
Section titled “Before”{ "compilerOptions": { "module": "es2020", "moduleResolution": "node", },}{ "compilerOptions": { "module": "preserve", "moduleResolution": "bundler", },}If both values are already set correctly and inherited from an extended tsconfig file, the migration will not modify the configuration:
Before
Section titled “Before”{ "extends": "../../tsconfig.base.json", "compilerOptions": { "module": "preserve", "moduleResolution": "bundler", },}{ "extends": "./tsconfig.json", "compilerOptions": { "types": [], },}{ "extends": "../../tsconfig.base.json", "compilerOptions": { "module": "preserve", "moduleResolution": "bundler", },}{ "extends": "./tsconfig.json", "compilerOptions": { "types": [], },}The migration only processes TypeScript configuration files that are referenced by Angular project build targets, ensuring that only Angular-specific configurations are updated.
update-typescript-lib-22-2-0
Section titled “update-typescript-lib-22-2-0”Version: 22.3.0-beta.0
Updates the ‘lib’ property in tsconfig files to use ‘es2022’ or a more modern version.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=21.0.0 |
Update TypeScript lib compiler option to ES2022
Section titled “Update TypeScript lib compiler option to ES2022”Updates the TypeScript lib compiler option in Angular projects to ensure compatibility with Angular v21+, which requires ES2022 as the minimum ECMAScript version. The migration upgrades any ES versions older than ES2022 (such as ES2015, ES2020, etc.) to ES2022 while preserving other library entries like 'dom', 'webworker', etc.
Examples
Section titled “Examples”The migration processes TypeScript configuration files referenced by Angular project build targets and updates the lib compiler option when outdated ES versions are detected:
Before
Section titled “Before”{ "compilerOptions": { "lib": ["es2020", "dom"], },}{ "compilerOptions": { "lib": ["dom", "es2022"], },}When the lib array contains only an ES version older than ES2022 without additional entries, it is upgraded:
Before
Section titled “Before”{ "compilerOptions": { "lib": ["es2020"], },}{ "compilerOptions": { "lib": ["es2022"], },}If the configuration already uses ES2022 or higher (e.g., 'es2023', 'esnext'), no changes are made:
Before
Section titled “Before”{ "compilerOptions": { "lib": ["es2022", "dom"], },}{ "compilerOptions": { "lib": ["es2022", "dom"], },}When the lib array contains multiple library entries, only the ES version is upgraded while all other entries are preserved:
Before
Section titled “Before”{ "compilerOptions": { "lib": ["es2020", "dom", "webworker"], },}{ "compilerOptions": { "lib": ["dom", "webworker", "es2022"], },}The migration only processes TypeScript configuration files that are referenced by Angular project build targets, ensuring that only Angular-specific configurations are updated.
update-unit-test-runner-option
Section titled “update-unit-test-runner-option”Version: 22.3.0-beta.0
Update ‘vitest’ unit test runner option to ‘vitest-analog’ in generator defaults.
Update vitest unit test runner option to vitest-analog in generator defaults
Section titled “Update vitest unit test runner option to vitest-analog in generator defaults”Updates the unitTestRunner generator default from vitest to vitest-analog in nx.json. The vitest option has been split into two explicit options: vitest-angular (uses @angular/build:unit-test) and vitest-analog (uses AnalogJS-based setup).
Examples
Section titled “Examples”The migration updates generator defaults in nx.json:
Before
Section titled “Before”{ "generators": { "@nx/angular:application": { "unitTestRunner": "vitest", }, },}{ "generators": { "@nx/angular:application": { "unitTestRunner": "vitest-analog", }, },}set-isolated-modules-22-3-0
Section titled “set-isolated-modules-22-3-0”Version: 22.3.0-beta.3
Set ‘isolatedModules’ to ‘true’ in TypeScript test configurations for Angular projects.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=21.0.0 |
Set isolatedModules to true in TypeScript test configurations
Section titled “Set isolatedModules to true in TypeScript test configurations”Sets the TypeScript isolatedModules compiler option to true in tsconfig.spec.json files for Angular projects using the Jest test runner.
Examples
Section titled “Examples”The migration updates TypeScript test configuration files in Angular projects using the Jest test runner to set the isolatedModules compiler option:
Before
Section titled “Before”{ "compilerOptions": { "outDir": "./out-tsc/spec", },}{ "compilerOptions": { "outDir": "./out-tsc/spec", "isolatedModules": true, },}If the value is already set to true or inherited from an extended tsconfig file, the migration will not modify the configuration:
Before
Section titled “Before”{ "compilerOptions": { "isolatedModules": true, },}{ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/spec", },}{ "compilerOptions": { "isolatedModules": true, },}{ "extends": "../../tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/spec", },}The migration only processes TypeScript test configuration files (tsconfig.spec.json or custom test tsconfig files referenced by @nx/jest:jest tasks) in Angular projects.
update-jest-preset-angular-setup
Section titled “update-jest-preset-angular-setup”Version: 22.3.0-beta.3
Replace ‘jest-preset-angular/setup-jest’ imports with the new ‘setupZoneTestEnv’ function.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=21.0.0 |
Update Jest Preset Angular Setup
Section titled “Update Jest Preset Angular Setup”Replaces the removed jest-preset-angular/setup-jest import with the new setupZoneTestEnv function from jest-preset-angular/setup-env/zone.
Starting with jest-preset-angular v15, the setup-jest files have been removed and replaced with explicit setup functions. The old setup-jest import only supported zone-based testing (zoneless support was added in v14.3.0 with the new setupZonelessTestEnv function), so all projects using the removed import are migrated to use setupZoneTestEnv.
Examples
Section titled “Examples”Before
Section titled “Before”import 'jest-preset-angular/setup-jest';import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';
setupZoneTestEnv();22.3.0-package-updates
Section titled “22.3.0-package-updates”Version: 22.3.0-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular/cli | ~21.0.0 | Updated only |
@angular-devkit/build-angular | ~21.0.0 | Updated only |
@angular-devkit/core | ~21.0.0 | Updated only |
@angular-devkit/schematics | ~21.0.0 | Updated only |
@angular/build | ~21.0.0 | Updated only |
@angular/pwa | ~21.0.0 | Updated only |
@angular/ssr | ~21.0.0 | Updated only |
@schematics/angular | ~21.0.0 | Updated only |
@angular-devkit/architect | ~0.2100.0 | Updated only |
@angular-devkit/build-webpack | ~0.2100.0 | Updated only |
@angular/core | ~21.0.0 | Added if not installed |
@angular/material | ~21.0.0 | Updated only |
@angular/cdk | ~21.0.0 | Updated only |
@angular/google-maps | ~21.0.0 | Updated only |
ng-packagr | ~21.0.0 | Updated only |
zone.js | ~0.16.0 | Updated only |
22.3.0-angular-eslint-package-updates
Section titled “22.3.0-angular-eslint-package-updates”Version: 22.3.0-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^21.0.1 | Updated only |
@angular-eslint/eslint-plugin | ^21.0.1 | Updated only |
@angular-eslint/eslint-plugin-template | ^21.0.1 | Updated only |
@angular-eslint/template-parser | ^21.0.1 | Updated only |
@angular-eslint/utils | ^21.0.1 | Updated only |
@angular-eslint/schematics | ^21.0.1 | Updated only |
@angular-eslint/test-utils | ^21.0.1 | Updated only |
@angular-eslint/builder | ^21.0.1 | Updated only |
@angular-eslint/bundled-angular-compiler | ^21.0.1 | Updated only |
22.3.0-@angular-eslint-package-updates
Section titled “22.3.0-@angular-eslint-package-updates”Version: 22.3.0-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-eslint/eslint-plugin | ^21.0.1 | Updated only |
@angular-eslint/eslint-plugin-template | ^21.0.1 | Updated only |
@angular-eslint/template-parser | ^21.0.1 | Updated only |
@angular-eslint/utils | ^21.0.1 | Updated only |
@angular-eslint/schematics | ^21.0.1 | Updated only |
@angular-eslint/test-utils | ^21.0.1 | Updated only |
@angular-eslint/builder | ^21.0.1 | Updated only |
@angular-eslint/bundled-angular-compiler | ^21.0.1 | Updated only |
22.3.2-ngrx-package-updates
Section titled “22.3.2-ngrx-package-updates”Version: 22.3.2-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@ngrx/store | ^21.0.0 | Updated only |
22.2.x
Section titled “22.2.x”22.2.0-package-updates
Section titled “22.2.0-package-updates”Version: 22.2.0-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@module-federation/enhanced | ^0.21.2 | Updated only |
@module-federation/runtime | ^0.21.2 | Updated only |
@module-federation/sdk | ^0.21.2 | Updated only |
@module-federation/node | ^2.7.21 | Updated only |
21.6.x
Section titled “21.6.x”update-angular-cli-version-20-3-0
Section titled “update-angular-cli-version-20-3-0”Version: 21.6.1-beta.2
Update the @angular/cli package version to ~20.3.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.3.0 |
Sample Code Changes
Section titled “Sample Code Changes”Update the @angular/cli package version in the package.json file at the workspace root to ~20.3.0.
Before
Section titled “Before”{ "devDependencies": { "@angular/cli": "~20.2.0" }}{ "devDependencies": { "@angular/cli": "~20.3.0" }}21.6.1-package-updates
Section titled “21.6.1-package-updates”Version: 21.6.1-beta.2
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~20.3.0 | Updated only |
@angular-devkit/core | ~20.3.0 | Updated only |
@angular-devkit/schematics | ~20.3.0 | Updated only |
@angular/build | ~20.3.0 | Updated only |
@angular/pwa | ~20.3.0 | Updated only |
@angular/ssr | ~20.3.0 | Updated only |
@schematics/angular | ~20.3.0 | Updated only |
@angular-devkit/architect | ~0.2003.0 | Updated only |
@angular-devkit/build-webpack | ~0.2003.0 | Updated only |
@angular/core | ~20.3.0 | Added if not installed |
@angular/material | ~20.2.3 | Updated only |
@angular/cdk | ~20.2.3 | Updated only |
@angular/google-maps | ~20.2.3 | Updated only |
ng-packagr | ~20.3.0 | Updated only |
21.6.1-angular-eslint-package-updates
Section titled “21.6.1-angular-eslint-package-updates”Version: 21.6.1-beta.2
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^20.3.0 | Updated only |
@angular-eslint/eslint-plugin | ^20.3.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^20.3.0 | Updated only |
@angular-eslint/template-parser | ^20.3.0 | Updated only |
@angular-eslint/utils | ^20.3.0 | Updated only |
@angular-eslint/schematics | ^20.3.0 | Updated only |
@angular-eslint/test-utils | ^20.3.0 | Updated only |
@angular-eslint/builder | ^20.3.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^20.3.0 | Updated only |
21.6.1-@angular-eslint-package-updates
Section titled “21.6.1-@angular-eslint-package-updates”Version: 21.6.1-beta.2
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-eslint/eslint-plugin | ^20.3.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^20.3.0 | Updated only |
@angular-eslint/template-parser | ^20.3.0 | Updated only |
@angular-eslint/utils | ^20.3.0 | Updated only |
@angular-eslint/schematics | ^20.3.0 | Updated only |
@angular-eslint/test-utils | ^20.3.0 | Updated only |
@angular-eslint/builder | ^20.3.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^20.3.0 | Updated only |
21.5.x
Section titled “21.5.x”set-tsconfig-option
Section titled “set-tsconfig-option”Version: 21.5.0-beta.0
Set the ‘tsConfig’ option to build and test targets to help with Angular migration issues.
Set tsConfig option for build and test targets
Section titled “Set tsConfig option for build and test targets”- Set the
tsConfigoption in the target options for library build executors. It moves the value from the targetdevelopmentconfiguration and it doesn’t set it if the option is already set. - Set
tsconfig.spec.jsonas thetsConfigoption in the target options for the@nx/jest:jestexecutor. It only does it if the file exists and the options is not already set.
Examples
Section titled “Examples”The migration will move the tsConfig option for library build executors (@nx/angular:ng-packagr-lite and @nx/angular:package) from the development configuration to the target options if it’s not already set:
Before
Section titled “Before”{ "targets": { "build": { "executor": "@nx/angular:ng-packagr-lite", "configurations": { "development": { "tsConfig": "libs/lib1/tsconfig.lib.dev.json" } } } }}{ "targets": { "build": { "executor": "@nx/angular:ng-packagr-lite", "options": { "tsConfig": "libs/lib1/tsconfig.lib.dev.json" }, "configurations": { "development": {} } } }}The migration will set the tsConfig option for the @nx/jest:jest executor when the tsconfig.spec.json file exists and the option is not already set:
Before
Section titled “Before”{ "targets": { "test": { "executor": "@nx/jest:jest" } }}{ "targets": { "test": { "executor": "@nx/jest:jest", "options": { "tsConfig": "apps/app1/tsconfig.spec.json" } } }}If the tsConfig option is already set in the target options, the migration will not modify the configuration:
Before
Section titled “Before”{ "targets": { "build": { "executor": "@nx/angular:ng-packagr-lite", "options": { "tsConfig": "libs/lib1/tsconfig.lib.json" }, "configurations": { "development": { "tsConfig": "libs/lib1/tsconfig.lib.dev.json" } } } }}{ "targets": { "build": { "executor": "@nx/angular:ng-packagr-lite", "options": { "tsConfig": "libs/lib1/tsconfig.lib.json" }, "configurations": { "development": { "tsConfig": "libs/lib1/tsconfig.lib.dev.json" } } } }}update-angular-cli-version-20-2-0
Section titled “update-angular-cli-version-20-2-0”Version: 21.5.0-beta.2
Update the @angular/cli package version to ~20.2.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.2.0 |
Sample Code Changes
Section titled “Sample Code Changes”Update the @angular/cli package version in the package.json file at the workspace root to ~20.2.0.
Before
Section titled “Before”{ "devDependencies": { "@angular/cli": "~20.1.0" }}{ "devDependencies": { "@angular/cli": "~20.2.0" }}remove-default-karma-configuration-files
Section titled “remove-default-karma-configuration-files”Version: 21.5.0-beta.2
Remove any Karma configuration files that only contain the default content. The default configuration is automatically available without a specific project configurationfile.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.2.0 |
Remove the Default Karma Configuration Files
Section titled “Remove the Default Karma Configuration Files”Removes Karma configuration files that match the default configuration generated by Angular CLI to reduce boilerplate code in the workspace. The migration also removes the karmaConfig option from project targets when the configuration file is removed.
Examples
Section titled “Examples”The migration will remove karma.conf.js files that contain only default settings and update the project configuration:
Before
Section titled “Before”// Karma configuration file, see link for more information// https://karma-runner.github.io/1.0/config/configuration-file.html
module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage'), require('@angular-devkit/build-angular/plugins/karma'), ], client: { jasmine: { // you can add configuration options for Jasmine here // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html // for example, you can disable the random execution with `random: false` // or set a specific seed with `seed: 4321` }, }, jasmineHtmlReporter: { suppressAll: true, // removes the duplicated traces }, coverageReporter: { dir: require('path').join(__dirname, '../../coverage/my-app'), subdir: '.', reporters: [{ type: 'html' }, { type: 'text-summary' }], }, reporters: ['progress', 'kjhtml'], browsers: ['Chrome'], restartOnFileChange: true, });};{ "name": "my-app", "targets": { "test": { "executor": "@angular-devkit/build-angular:karma", "options": { "karmaConfig": "apps/my-app/karma.conf.js", "polyfills": ["zone.js", "zone.js/testing"] } } }}File apps/my-app/karma.conf.js is removed.
{ "name": "my-app", "targets": { "test": { "executor": "@angular-devkit/build-angular:karma", "options": { "polyfills": ["zone.js", "zone.js/testing"] } } }}If the Karma configuration contains customizations, the migration will preserve the file and configuration:
Before
Section titled “Before”module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage'), require('@angular-devkit/build-angular/plugins/karma'), ], browsers: ['ChromeHeadless'], // Custom browser configuration restartOnFileChange: true, });};module.exports = function (config) { config.set({ basePath: '', frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-jasmine-html-reporter'), require('karma-coverage'), require('@angular-devkit/build-angular/plugins/karma'), ], browsers: ['ChromeHeadless'], // Custom browser configuration restartOnFileChange: true, });};21.5.0-package-updates
Section titled “21.5.0-package-updates”Version: 21.5.0-beta.2
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~20.2.0 | Updated only |
@angular-devkit/core | ~20.2.0 | Updated only |
@angular-devkit/schematics | ~20.2.0 | Updated only |
@angular/build | ~20.2.0 | Updated only |
@angular/pwa | ~20.2.0 | Updated only |
@angular/ssr | ~20.2.0 | Updated only |
@schematics/angular | ~20.2.0 | Updated only |
@angular-devkit/architect | ~0.2002.0 | Updated only |
@angular-devkit/build-webpack | ~0.2002.0 | Updated only |
@angular/core | ~20.2.0 | Added if not installed |
@angular/material | ~20.2.0 | Updated only |
@angular/cdk | ~20.2.0 | Updated only |
@angular/google-maps | ~20.2.0 | Updated only |
ng-packagr | ~20.2.0 | Updated only |
21.5.0-angular-eslint-package-updates
Section titled “21.5.0-angular-eslint-package-updates”Version: 21.5.0-beta.2
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^20.2.0 | Updated only |
@angular-eslint/eslint-plugin | ^20.2.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^20.2.0 | Updated only |
@angular-eslint/template-parser | ^20.2.0 | Updated only |
@angular-eslint/utils | ^20.2.0 | Updated only |
@angular-eslint/schematics | ^20.2.0 | Updated only |
@angular-eslint/test-utils | ^20.2.0 | Updated only |
@angular-eslint/builder | ^20.2.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^20.2.0 | Updated only |
21.5.0-@angular-eslint-package-updates
Section titled “21.5.0-@angular-eslint-package-updates”Version: 21.5.0-beta.2
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-eslint/eslint-plugin | ^20.2.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^20.2.0 | Updated only |
@angular-eslint/template-parser | ^20.2.0 | Updated only |
@angular-eslint/utils | ^20.2.0 | Updated only |
@angular-eslint/schematics | ^20.2.0 | Updated only |
@angular-eslint/test-utils | ^20.2.0 | Updated only |
@angular-eslint/builder | ^20.2.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^20.2.0 | Updated only |
21.4.x
Section titled “21.4.x”21.4.0-ngrx-package-updates
Section titled “21.4.0-ngrx-package-updates”Version: 21.4.0-beta.3
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@ngrx/store | ^20.0.0 | Updated only |
21.3.x
Section titled “21.3.x”update-angular-cli-version-20-1-0
Section titled “update-angular-cli-version-20-1-0”Version: 21.3.0-beta.4
Update the @angular/cli package version to ~20.1.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.1.0 |
Sample Code Changes
Section titled “Sample Code Changes”Update the @angular/cli package version in the package.json file at the workspace root to ~20.1.0.
Before
Section titled “Before”{ "devDependencies": { "@angular/cli": "~20.0.0" }}{ "devDependencies": { "@angular/cli": "~20.1.0" }}21.3.0-package-updates
Section titled “21.3.0-package-updates”Version: 21.3.0-beta.4
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~20.1.0 | Updated only |
@angular-devkit/core | ~20.1.0 | Updated only |
@angular-devkit/schematics | ~20.1.0 | Updated only |
@angular/build | ~20.1.0 | Updated only |
@angular/pwa | ~20.1.0 | Updated only |
@angular/ssr | ~20.1.0 | Updated only |
@schematics/angular | ~20.1.0 | Updated only |
@angular-devkit/architect | ~0.2001.0 | Updated only |
@angular-devkit/build-webpack | ~0.2001.0 | Updated only |
@angular/core | ~20.1.0 | Added if not installed |
@angular/material | ~20.1.0 | Updated only |
@angular/cdk | ~20.1.0 | Updated only |
@angular/google-maps | ~20.1.0 | Updated only |
ng-packagr | ~20.1.0 | Updated only |
21.2.x
Section titled “21.2.x”update-angular-cli-version-20-0-0
Section titled “update-angular-cli-version-20-0-0”Version: 21.2.0-beta.3
Update the @angular/cli package version to ~20.0.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.0.0 |
Sample Code Changes
Section titled “Sample Code Changes”Update the @angular/cli package version in the package.json file at the workspace root to ~20.0.0.
Before
Section titled “Before”{ "devDependencies": { "@angular/cli": "~19.2.0" }}{ "devDependencies": { "@angular/cli": "~20.0.0" }}migrate-provide-server-rendering-import
Section titled “migrate-provide-server-rendering-import”Version: 21.2.0-beta.3
Migrate imports of provideServerRendering from @angular/platform-server to @angular/ssr.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.0.0 |
Migrate Imports of provideServerRendering from @angular/platform-server to @angular/ssr
Section titled “Migrate Imports of provideServerRendering from @angular/platform-server to @angular/ssr”Migrate the imports of provideServerRendering from @angular/platform-server to @angular/ssr. This migration will also add the @angular/ssr package to your dependencies if needed.
Examples
Section titled “Examples”Change the import of provideServerRendering from @angular/platform-server to @angular/ssr:
Before
Section titled “Before”import { ApplicationConfig } from '@angular/core';import { provideServerRendering } from '@angular/platform-server';
const serverConfig: ApplicationConfig = { providers: [provideServerRendering()],};import { ApplicationConfig } from '@angular/core';import { provideServerRendering } from '@angular/ssr';
const serverConfig: ApplicationConfig = { providers: [provideServerRendering()],};If you already have imports from @angular/ssr, the migration will add provideServerRendering to the existing import:
Before
Section titled “Before”import { ApplicationConfig } from '@angular/core';import { provideServerRendering } from '@angular/platform-server';import { provideServerRouting } from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [provideServerRendering(), provideServerRouting(serverRoutes)],};import { ApplicationConfig } from '@angular/core';import { provideServerRouting, provideServerRendering } from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [provideServerRendering(), provideServerRouting(serverRoutes)],};replace-provide-server-routing
Section titled “replace-provide-server-routing”Version: 21.2.0-beta.3
Replace provideServerRouting and provideServerRoutesConfig with provideServerRendering using withRoutes.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.0.0 |
Replace provideServerRouting and provideServerRoutesConfig with provideServerRendering
Section titled “Replace provideServerRouting and provideServerRoutesConfig with provideServerRendering”Replace provideServerRouting and provideServerRoutesConfig calls with provideServerRendering using withRoutes.
Examples
Section titled “Examples”Remove provideServerRouting from your providers array and update the provideServerRendering call to use withRoutes:
Before
Section titled “Before”import { ApplicationConfig } from '@angular/core';import { provideServerRendering, provideServerRouting } from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [provideServerRendering(), provideServerRouting(serverRoutes)],};import { ApplicationConfig } from '@angular/core';import { provideServerRendering, withRoutes } from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [provideServerRendering(withRoutes(serverRoutes))],};If you have provideServerRouting with additional arguments, the migration will preserve them:
Before
Section titled “Before”import { ApplicationConfig } from '@angular/core';import { provideServerRendering, provideServerRouting, withAppShell,} from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [ provideServerRendering(), provideServerRouting(serverRoutes, withAppShell(AppShellComponent)), ],};import { ApplicationConfig } from '@angular/core';import { provideServerRendering, withAppShell, withRoutes } from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [ provideServerRendering( withRoutes(serverRoutes), withAppShell(AppShellComponent) ), ],};Remove provideServerRoutesConfig from your providers array and update the provideServerRendering call to use withRoutes:
Before
Section titled “Before”import { ApplicationConfig } from '@angular/core';import { provideServerRendering, provideServerRoutesConfig, withAppShell,} from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [ provideServerRendering(), provideServerRoutesConfig(serverRoutes, withAppShell(AppShellComponent)), ],};import { ApplicationConfig } from '@angular/core';import { provideServerRendering, withAppShell, withRoutes } from '@angular/ssr';import { serverRoutes } from './app.routes.server';
const serverConfig: ApplicationConfig = { providers: [ provideServerRendering( withRoutes(serverRoutes), withAppShell(AppShellComponent) ), ],};set-generator-defaults-for-previous-style-guide
Section titled “set-generator-defaults-for-previous-style-guide”Version: 21.2.0-beta.3
Update the generator defaults to maintain the previous style guide behavior.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.0.0 |
Set Generator Defaults for Previous Style Guide
Section titled “Set Generator Defaults for Previous Style Guide”Updates the generator defaults in the nx.json file to maintain the previous Angular Style Guide behavior. This ensures that newly generated code in existing workspaces follows the same conventions as the existing codebase.
Examples
Section titled “Examples”The migration will add default configurations for the relevant Angular generators in the workspace’s nx.json file:
Before
Section titled “Before”{ "generators": {}}{ "generators": { "@nx/angular:component": { "type": "component" }, "@nx/angular:directive": { "type": "directive" }, "@nx/angular:service": { "type": "service" }, "@nx/angular:scam": { "type": "component" }, "@nx/angular:scam-directive": { "type": "directive" }, "@nx/angular:guard": { "typeSeparator": "." }, "@nx/angular:interceptor": { "typeSeparator": "." }, "@nx/angular:module": { "typeSeparator": "." }, "@nx/angular:pipe": { "typeSeparator": "." }, "@nx/angular:resolver": { "typeSeparator": "." }, "@schematics/angular:component": { "type": "component" }, "@schematics/angular:directive": { "type": "directive" }, "@schematics/angular:service": { "type": "service" }, "@schematics/angular:guard": { "typeSeparator": "." }, "@schematics/angular:interceptor": { "typeSeparator": "." }, "@schematics/angular:module": { "typeSeparator": "." }, "@schematics/angular:pipe": { "typeSeparator": "." }, "@schematics/angular:resolver": { "typeSeparator": "." } }}If some of the generator defaults are already set, the migration will not override them:
Before
Section titled “Before”{ "generators": { "@nx/angular:component": { "type": "cmp" }, "@schematics/angular:component": { "type": "cmp" }, "@nx/angular:interceptor": { "typeSeparator": "-" }, "@schematics/angular:interceptor": { "typeSeparator": "-" } }}{ "generators": { "@nx/angular:component": { "type": "cmp" }, "@schematics/angular:component": { "type": "cmp" }, "@nx/angular:interceptor": { "typeSeparator": "-" }, "@schematics/angular:interceptor": { "typeSeparator": "-" }, "@nx/angular:directive": { "type": "directive" }, "@nx/angular:service": { "type": "service" }, "@nx/angular:scam": { "type": "component" }, "@nx/angular:scam-directive": { "type": "directive" }, "@nx/angular:guard": { "typeSeparator": "." }, "@nx/angular:module": { "typeSeparator": "." }, "@nx/angular:pipe": { "typeSeparator": "." }, "@nx/angular:resolver": { "typeSeparator": "." }, "@schematics/angular:directive": { "type": "directive" }, "@schematics/angular:service": { "type": "service" }, "@schematics/angular:guard": { "typeSeparator": "." }, "@schematics/angular:module": { "typeSeparator": "." }, "@schematics/angular:pipe": { "typeSeparator": "." }, "@schematics/angular:resolver": { "typeSeparator": "." } }}update-module-resolution
Section titled “update-module-resolution”Version: 21.2.0-beta.3
Update ‘moduleResolution’ to ‘bundler’ in TypeScript configurations. You can read more about this here: https://www.typescriptlang.org/tsconfig/#moduleResolution.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=20.0.0 |
Update moduleResolution to bundler in TypeScript configurations
Section titled “Update moduleResolution to bundler in TypeScript configurations”Updates the TypeScript moduleResolution option to 'bundler' for improved compatibility with modern package resolution algorithms used by bundlers like Webpack, Vite, and esbuild.
Examples
Section titled “Examples”The migration will update TypeScript configuration files in your workspace to use the 'bundler' module resolution strategy:
Before
Section titled “Before”{ "compilerOptions": { "module": "es2020", "moduleResolution": "node" }}{ "compilerOptions": { "module": "es2020", "moduleResolution": "bundler" }}If the moduleResolution is already set to 'bundler' or the module is set to 'preserve', the migration will not modify the configuration:
Before
Section titled “Before”{ "compilerOptions": { "module": "preserve", "moduleResolution": "node" }}{ "compilerOptions": { "module": "preserve", "moduleResolution": "node" }}21.2.0-package-updates
Section titled “21.2.0-package-updates”Version: 21.2.0-beta.3
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~20.0.0 | Updated only |
@angular-devkit/core | ~20.0.0 | Updated only |
@angular-devkit/schematics | ~20.0.0 | Updated only |
@angular/build | ~20.0.0 | Updated only |
@angular/pwa | ~20.0.0 | Updated only |
@angular/ssr | ~20.0.0 | Updated only |
@schematics/angular | ~20.0.0 | Updated only |
@angular-devkit/architect | ~0.2000.0 | Updated only |
@angular-devkit/build-webpack | ~0.2000.0 | Updated only |
@angular/core | ~20.0.0 | Added if not installed |
@angular/material | ~20.0.0 | Updated only |
@angular/cdk | ~20.0.0 | Updated only |
@angular/google-maps | ~20.0.0 | Updated only |
ng-packagr | ~20.0.0 | Updated only |
21.2.0-angular-eslint-package-updates
Section titled “21.2.0-angular-eslint-package-updates”Version: 21.2.0-beta.3
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^20.0.0 | Updated only |
21.2.0-@angular-eslint-package-updates
Section titled “21.2.0-@angular-eslint-package-updates”Version: 21.2.0-beta.3
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-eslint/eslint-plugin | ^20.0.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^20.0.0 | Updated only |
@angular-eslint/template-parser | ^20.0.0 | Updated only |
@angular-eslint/utils | ^20.0.0 | Updated only |
@angular-eslint/schematics | ^20.0.0 | Updated only |
@angular-eslint/test-utils | ^20.0.0 | Updated only |
@angular-eslint/builder | ^20.0.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^20.0.0 | Updated only |
21.2.0-angular-rspack-package-updates
Section titled “21.2.0-angular-rspack-package-updates”Version: 21.2.0-beta.3
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@nx/angular-rspack | ^21.1.0 | Updated only |
21.2.0-jest-package-updates
Section titled “21.2.0-jest-package-updates”Version: 21.2.0-beta.3
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
jest-preset-angular | ~14.6.0 | Updated only |
21.1.x
Section titled “21.1.x”21.1.0-package-updates
Section titled “21.1.0-package-updates”Version: 21.1.0-beta.1
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@nx/angular-rspack | ^21.0.1 | Updated only |
21.0.x
Section titled “21.0.x”set-continuous-option
Section titled “set-continuous-option”Version: 21.0.0-beta.3
Set the continuous option to true for continuous tasks.
Set continuous Option for Continuous Tasks
Section titled “Set continuous Option for Continuous Tasks”This migration sets the continuous option to true for tasks that are known to run continuously, and only if the option is not already explicitly set.
Specifically, it updates Angular targets using the following executors:
@angular-devkit/build-angular:dev-server@angular-devkit/build-angular:ssr-dev-server@nx/angular:dev-server@nx/angular:module-federation-dev-server@nx/angular:module-federation-dev-ssr
Examples
Section titled “Examples”Before
Section titled “Before”{ // ... "targets": { // ... "serve": { "executor": "@angular-devkit/build-angular:dev-server", "options": { "buildTarget": "my-app:build", "port": 4200 } } }}{ // ... "targets": { // ... "serve": { "continuous": true, "executor": "@angular-devkit/build-angular:dev-server", "options": { "buildTarget": "my-app:build", "port": 4200 } } }}When a target is already explicitly configured with a continuous option, the migration will not modify it:
Before
Section titled “Before”{ // ... "targets": { // ... "serve": { "continuous": false, "executor": "@nx/angular:dev-server", "options": { "buildTarget": "my-app:build", "port": 4200 } } }}{ // ... "targets": { // ... "serve": { "continuous": false, "executor": "@nx/angular:dev-server", "options": { "buildTarget": "my-app:build", "port": 4200 } } }}change-data-persistence-operators-imports-to-ngrx-router-store-data-persistence
Section titled “change-data-persistence-operators-imports-to-ngrx-router-store-data-persistence”Version: 21.0.0-beta.5
Change the data persistence operator imports to ‘@ngrx/router-store/data-persistence’.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@ngrx/store | >=16.0.0 |
Change the Data Persistence Operator Imports from @nx/angular to @ngrx/router-store/data-persistence
Section titled “Change the Data Persistence Operator Imports from @nx/angular to @ngrx/router-store/data-persistence”The data persistence operators (fetch, navigation, optimisticUpdate, and pessimisticUpdate) have been deprecated for a while and are now removed from the @nx/angular package. This migration automatically updates your import statements to use the @ngrx/router-store/data-persistence module and adds @ngrx/router-store to your dependencies if needed.
Examples
Section titled “Examples”If you import only data persistence operators from @nx/angular, the migration will update the import path to @ngrx/router-store/data-persistence.
Before
Section titled “Before”import { Actions, createEffect, ofType } from '@ngrx/effects';import { fetch } from '@nx/angular';
@Injectable()export class UsersEffects { // ...}import { Injectable } from '@angular/core';import { fetch } from '@ngrx/router-store/data-persistence';
@Injectable()export class UsersEffects { // ...}If you import multiple data persistence operators from @nx/angular, the migration will update the import path for all of them.
Before
Section titled “Before”import { Injectable } from '@angular/core';import { fetch, navigation } from '@nx/angular';
@Injectable()export class UsersEffects { // ...}import { Injectable } from '@angular/core';import { fetch, navigation } from '@ngrx/router-store/data-persistence';
@Injectable()export class UsersEffects { // ...}If your imports mix data persistence operators with other utilities from @nx/angular, the migration will split them into separate import statements.
Before
Section titled “Before”import { Injectable } from '@angular/core';import { fetch, someExtraUtility, navigation } from '@nx/angular';
@Injectable()export class UsersEffects { // ...}import { Injectable } from '@angular/core';import { fetch, navigation } from '@ngrx/router-store/data-persistence';import { someExtraUtility } from '@nx/angular';
@Injectable()export class UsersEffects { // ...}If you don’t already have @ngrx/router-store in your dependencies, the migration will add it to your package.json.
Before
Section titled “Before”{ "dependencies": { "@nx/angular": "^21.0.0", "@ngrx/store": "^19.1.0", "@ngrx/effects": "^19.1.0", // ... },}{ "dependencies": { "@nx/angular": "^21.0.0", "@ngrx/store": "^19.1.0", "@ngrx/effects": "^19.1.0", "@ngrx/router-store": "^19.1.0", // ... },}20.8.x
Section titled “20.8.x”20.8.1-package-updates
Section titled “20.8.1-package-updates”Version: 20.8.1-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@nx/angular-rspack | ^20.7.0 | Updated only |
20.5.x
Section titled “20.5.x”update-angular-cli-version-19-2-0
Section titled “update-angular-cli-version-19-2-0”Version: 20.5.0-beta.5
Update the @angular/cli package version to ~19.2.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.2.0 |
Sample Code Changes
Section titled “Sample Code Changes”Update the @angular/cli package version in the package.json file at the workspace root to ~19.2.0.
Before
Section titled “Before”{ "devDependencies": { "@angular/cli": "~19.1.0" }}{ "devDependencies": { "@angular/cli": "~19.2.0" }}20.5.0-package-updates
Section titled “20.5.0-package-updates”Version: 20.5.0-beta.5
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~19.2.0 | Updated only |
@angular-devkit/core | ~19.2.0 | Updated only |
@angular-devkit/schematics | ~19.2.0 | Updated only |
@angular/build | ~19.2.0 | Updated only |
@angular/pwa | ~19.2.0 | Updated only |
@angular/ssr | ~19.2.0 | Updated only |
@schematics/angular | ~19.2.0 | Updated only |
@angular-devkit/architect | ~0.1902.0 | Updated only |
@angular-devkit/build-webpack | ~0.1902.0 | Updated only |
@angular/core | ~19.2.0 | Added if not installed |
@angular/material | ~19.2.1 | Updated only |
@angular/cdk | ~19.2.1 | Updated only |
@angular/google-maps | ~19.2.1 | Updated only |
ng-packagr | ~19.2.0 | Updated only |
20.5.0-angular-eslint-package-updates
Section titled “20.5.0-angular-eslint-package-updates”Version: 20.5.0-rc.1
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^19.2.0 | Updated only |
@angular-eslint/eslint-plugin | ^19.2.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^19.2.0 | Updated only |
@angular-eslint/template-parser | ^19.2.0 | Updated only |
@angular-eslint/utils | ^19.2.0 | Updated only |
@angular-eslint/schematics | ^19.2.0 | Updated only |
@angular-eslint/test-utils | ^19.2.0 | Updated only |
@angular-eslint/builder | ^19.2.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^19.2.0 | Updated only |
20.4.x
Section titled “20.4.x”update-angular-cli-version-19-1-0
Section titled “update-angular-cli-version-19-1-0”Version: 20.4.0-beta.1
Update the @angular/cli package version to ~19.1.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.1.0 |
Update @angular/cli to ~19.1.0
Section titled “Update @angular/cli to ~19.1.0”Update the version of the Angular CLI if it is specified in package.json
Sample Code Changes
Section titled “Sample Code Changes”Update in devDependencies:
Before
Section titled “Before”{ "devDependencies": { "@angular/cli": "~13.3.0" }}{ "devDependencies": { "@angular/cli": "~19.1.0" }}Update in dependencies:
Before
Section titled “Before”{ "dependencies": { "@angular/cli": "~13.3.0" }}{ "dependencies": { "@angular/cli": "~19.1.0" }}20.4.0-package-updates
Section titled “20.4.0-package-updates”Version: 20.4.0-beta.1
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~19.1.0 | Updated only |
@angular-devkit/core | ~19.1.0 | Updated only |
@angular-devkit/schematics | ~19.1.0 | Updated only |
@angular/build | ~19.1.0 | Updated only |
@angular/pwa | ~19.1.0 | Updated only |
@angular/ssr | ~19.1.0 | Updated only |
@schematics/angular | ~19.1.0 | Updated only |
@angular-devkit/architect | ~0.1901.0 | Updated only |
@angular-devkit/build-webpack | ~0.1901.0 | Updated only |
@angular/core | ~19.1.0 | Added if not installed |
@angular/material | ~19.1.0 | Updated only |
@angular/cdk | ~19.1.0 | Updated only |
@angular/google-maps | ~19.1.0 | Updated only |
ng-packagr | ~19.1.0 | Updated only |
20.3.x
Section titled “20.3.x”ensure-nx-module-federation-package
Section titled “ensure-nx-module-federation-package”Version: 20.3.0-beta.2
If workspace includes Module Federation projects, ensure the new @nx/module-federation package is installed.
Ensure the @nx/module-federation Package is Installed
Section titled “Ensure the @nx/module-federation Package is Installed”If workspace includes Module Federation projects, ensure the new @nx/module-federation package is installed.
Sample Code Changes
Section titled “Sample Code Changes”Before
Section titled “Before”{ "dependencies": {}}{ "dependencies": { "@nx/module-federation": "20.3.0" }}20.2.3-ngrx-package-updates
Section titled “20.2.3-ngrx-package-updates”Version: 20.3.0-beta.2
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@ngrx/store | ^19.0.0 | Updated only |
20.2.x
Section titled “20.2.x”update-20-2-0-update-module-federation-config-import
Section titled “update-20-2-0-update-module-federation-config-import”Version: 20.2.0-beta.2
Update the ModuleFederationConfig import use @nx/module-federation.
Migrate Module Federation Imports to New Package
Section titled “Migrate Module Federation Imports to New Package”Update the ModuleFederationConfig imports to use @nx/module-federation.
Sample Code Changes
Section titled “Sample Code Changes”Update import paths for ModuleFederationConfig.
Before
Section titled “Before”import { ModuleFederationConfig } from '@nx/webpack';import { ModuleFederationConfig } from '@nx/module-federation';update-20-2-0-update-with-module-federation-import
Section titled “update-20-2-0-update-with-module-federation-import”Version: 20.2.0-beta.2
Update the withModuleFederation import use @nx/module-federation/angular.
Migrate withModuleFederation Import to New Package
Section titled “Migrate withModuleFederation Import to New Package”Update the withModuleFederation import to use @nx/module-federation/webpack.
Sample Code Changes
Section titled “Sample Code Changes”Update import paths for withModuleFederation and withModuleFederationForSSR.
Before
Section titled “Before”import { withModuleFederation, withModuleFederationForSSR,} from '@nx/angular/module-federation';import { withModuleFederation, withModuleFederationForSSR,} from '@nx/module-federation/angular';update-angular-cli-version-19-0-0
Section titled “update-angular-cli-version-19-0-0”Version: 20.2.0-beta.5
Update the @angular/cli package version to ~19.0.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.0.0 |
Update @angular/cli to ~19.0.0
Section titled “Update @angular/cli to ~19.0.0”Update the version of the Angular CLI if it is specified in package.json
Sample Code Changes
Section titled “Sample Code Changes”Update in devDependencies:
Before
Section titled “Before”{ "devDependencies": { "@angular/cli": "~13.3.0" }}{ "devDependencies": { "@angular/cli": "~19.0.0" }}Update in dependencies:
Before
Section titled “Before”{ "dependencies": { "@angular/cli": "~13.3.0" }}{ "dependencies": { "@angular/cli": "~19.0.0" }}add-localize-polyfill-to-targets
Section titled “add-localize-polyfill-to-targets”Version: 20.2.0-beta.5
Add the ‘@angular/localize/init’ polyfill to the ‘polyfills’ option of targets using esbuild-based executors.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.0.0 |
Add Localize Polyfill to Targets
Section titled “Add Localize Polyfill to Targets”Add the ‘@angular/localize/init’ polyfill to the ‘polyfills’ option of targets using esbuild-based executors.
Sample Code Changes
Section titled “Sample Code Changes”Add the @angular/localize/init polyfill to any of these executors:
@angular/build:application@angular-devkit/build-angular:application@nx/angular:application@angular-devkit/build-angular:browser-esbuild@nx/angular:browser-esbuild
Before
Section titled “Before”{ "targets": { "build": { "executor": "@angular/build:application", "options": { "localize": true } } }}{ "targets": { "build": { "executor": "@angular/build:application", "options": { "localize": true, "polyfills": ["@angular/localize/init"] } } }}update-angular-ssr-imports-to-use-node-entry-point
Section titled “update-angular-ssr-imports-to-use-node-entry-point”Version: 20.2.0-beta.5
Update ‘@angular/ssr’ import paths to use the new ‘/node’ entry point when ‘CommonEngine’ is detected.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.0.0 |
Update Angular SSR Imports to Use Node Entry Point
Section titled “Update Angular SSR Imports to Use Node Entry Point”Update ‘@angular/ssr’ import paths to use the new ‘/node’ entry point when ‘CommonEngine’ is detected.
Sample Code Changes
Section titled “Sample Code Changes”Update import paths for SSR CommonEngine properties to use @angular/ssr/node.
Before
Section titled “Before”import { CommonEngine } from '@angular/ssr';import type { CommonEngineOptions, CommonEngineRenderOptions,} from '@angular/ssr';import { CommonEngine } from '@angular/ssr/node';import type { CommonEngineOptions, CommonEngineRenderOptions,} from '@angular/ssr/node';disable-angular-eslint-prefer-standalone
Section titled “disable-angular-eslint-prefer-standalone”Version: 20.2.0-beta.6
Disable the Angular ESLint prefer-standalone rule if not set.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.0.0 |
Disable Angular ESLint Prefer Standalone
Section titled “Disable Angular ESLint Prefer Standalone”Disable the Angular ESLint prefer-standalone rule if not set.
Sample Code Changes
Section titled “Sample Code Changes”Update import paths for withModuleFederation and withModuleFederationForSSR.
Before
Section titled “Before”{ "overrides": [ { "files": ["*.html"], "rules": { "some-rule-for-html": "error" } } ]}{ "overrides": [ { "files": ["*.html"], "rules": { "some-rule-for-html": "error" } }, { "files": ["*.ts"], "rules": { "@angular-eslint/prefer-standalone": "off" } } ]}import { addProjectConfiguration, writeJson, type ProjectConfiguration, type ProjectGraph, type Tree, } from ‘@nx/devkit’; import { createTreeWithEmptyWorkspace } from ‘@nx/devkit/testing’; import migration from ’./disable-angular-eslint-prefer-standalone’;
let projectGraph: ProjectGraph; jest.mock(‘@nx/devkit’, () => ({ …jest.requireActual(‘@nx/devkit’), createProjectGraphAsync: () => Promise.resolve(projectGraph), }));
describe(‘disable-angular-eslint-prefer-standalone’, () => { let tree: Tree;
beforeEach(() => { tree = createTreeWithEmptyWorkspace();
const projectConfig: ProjectConfiguration = { name: 'app1', root: 'apps/app1',};projectGraph = { dependencies: { app1: [ { source: 'app1', target: 'npm:@angular/core', type: 'static', }, ], }, nodes: { app1: { data: projectConfig, name: 'app1', type: 'app', }, },};addProjectConfiguration(tree, projectConfig.name, projectConfig);});
describe(‘.eslintrc.json’, () => { it(‘should not disable @angular-eslint/prefer-standalone when it is set’, async () => { writeJson(tree, ‘apps/app1/.eslintrc.json’, { overrides: [ { files: [‘*.ts’], rules: { ‘@angular-eslint/prefer-standalone’: [‘error’] }, }, ], });
await migration(tree);
expect(tree.read('apps/app1/.eslintrc.json', 'utf8')) .toMatchInlineSnapshot(` "{ "overrides": [ { "files": ["*.ts"], "rules": { "@angular-eslint/prefer-standalone": ["error"] } } ] } " `);});
it('should not disable @angular-eslint/prefer-standalone when there are multiple overrides for angular eslint and the rule is set in one of them', async () => { writeJson(tree, 'apps/app1/.eslintrc.json', { overrides: [ { files: ['*.ts'], rules: { '@angular-eslint/directive-selector': [ 'error', { type: 'attribute', prefix: 'app', style: 'camelCase' }, ], }, }, { files: ['*.ts'], rules: { '@angular-eslint/prefer-standalone': ['error'] }, }, ], });
await migration(tree);
expect(tree.read('apps/app1/.eslintrc.json', 'utf8')) .toMatchInlineSnapshot(` "{ "overrides": [ { "files": ["*.ts"], "rules": { "@angular-eslint/directive-selector": [ "error", { "type": "attribute", "prefix": "app", "style": "camelCase" } ] } }, { "files": ["*.ts"], "rules": { "@angular-eslint/prefer-standalone": ["error"] } } ] } " `);});
it('should disable @angular-eslint/prefer-standalone in an existing override for angular eslint', async () => { writeJson(tree, 'apps/app1/.eslintrc.json', { overrides: [ { files: ['*.ts'], rules: { 'no-unused-vars': 'error' }, }, { files: ['*.ts'], rules: { '@angular-eslint/directive-selector': [ 'error', { type: 'attribute', prefix: 'app', style: 'camelCase' }, ], }, }, ], });
await migration(tree);
expect(tree.read('apps/app1/.eslintrc.json', 'utf8')) .toMatchInlineSnapshot(` "{ "overrides": [ { "files": ["*.ts"], "rules": { "no-unused-vars": "error" } }, { "files": ["*.ts"], "rules": { "@angular-eslint/directive-selector": [ "error", { "type": "attribute", "prefix": "app", "style": "camelCase" } ], "@angular-eslint/prefer-standalone": "off" } } ] } " `);});
it('should disable @angular-eslint/prefer-standalone in an existing override for ts files', async () => { writeJson(tree, 'apps/app1/.eslintrc.json', { overrides: [ { files: ['*.ts'], rules: { 'no-unused-vars': 'error' }, }, ], });
await migration(tree);
expect(tree.read('apps/app1/.eslintrc.json', 'utf8')) .toMatchInlineSnapshot(` "{ "overrides": [ { "files": ["*.ts"], "rules": { "no-unused-vars": "error", "@angular-eslint/prefer-standalone": "off" } } ] } " `);});
it('should disable @angular-eslint/prefer-standalone in a new override', async () => { writeJson(tree, 'apps/app1/.eslintrc.json', { overrides: [ { files: ['*.html'], rules: { 'some-rule-for-html': 'error' }, }, ], });
await migration(tree);
expect(tree.read('apps/app1/.eslintrc.json', 'utf8')) .toMatchInlineSnapshot(` "{ "overrides": [ { "files": ["*.html"], "rules": { "some-rule-for-html": "error" } }, { "files": ["*.ts"], "rules": { "@angular-eslint/prefer-standalone": "off" } } ] } " `);});});
describe(‘flat config’, () => {
it(‘should not disable @angular-eslint/prefer-standalone when it is set’, async () => {
tree.write(‘eslint.config.js’, ‘module.exports = [];’);
tree.write(
‘apps/app1/eslint.config.js’,
module.exports = [ { files: ['*.ts'], rules: { '@angular-eslint/prefer-standalone': ['error'] }, }, ];
);
await migration(tree);
expect(tree.read('apps/app1/eslint.config.js', 'utf8')) .toMatchInlineSnapshot(` "module.exports = [ { files: ['*.ts'], rules: { '@angular-eslint/prefer-standalone': ['error'] }, }, ]; " `);});
it('should not disable @angular-eslint/prefer-standalone when there are multiple overrides for angular eslint and the rule is set in one of them', async () => { tree.write('eslint.config.js', 'module.exports = [];'); tree.write( 'apps/app1/eslint.config.js', `module.exports = [ { files: ['*.ts'], rules: { '@angular-eslint/directive-selector': [ 'error', { type: 'attribute', prefix: 'app', style: 'camelCase' }, ], }, }, { files: ['*.ts'], rules: { '@angular-eslint/prefer-standalone': ['error'] }, }, ]; ` );
await migration(tree);
expect(tree.read('apps/app1/eslint.config.js', 'utf8')) .toMatchInlineSnapshot(` "module.exports = [ { files: ['*.ts'], rules: { '@angular-eslint/directive-selector': [ 'error', { type: 'attribute', prefix: 'app', style: 'camelCase' }, ], }, }, { files: ['*.ts'], rules: { '@angular-eslint/prefer-standalone': ['error'] }, }, ]; " `);});
it('should disable @angular-eslint/prefer-standalone in an existing override for angular eslint', async () => { tree.write('eslint.config.js', 'module.exports = [];'); tree.write( 'apps/app1/eslint.config.js', `module.exports = [ { files: ['*.ts'], rules: { 'no-unused-vars': 'error' }, }, { files: ['*.ts'], rules: { '@angular-eslint/directive-selector': [ 'error', { type: 'attribute', prefix: 'app', style: 'camelCase' }, ], }, }, ]; ` );
await migration(tree);
expect(tree.read('apps/app1/eslint.config.js', 'utf8')) .toMatchInlineSnapshot(` "module.exports = [ { files: ['*.ts'], rules: { 'no-unused-vars': 'error' }, }, { files: ['**/*.ts'], rules: { '@angular-eslint/directive-selector': [ 'error', { type: 'attribute', prefix: 'app', style: 'camelCase', }, ], '@angular-eslint/prefer-standalone': 'off', }, }, ]; " `);});
it('should disable @angular-eslint/prefer-standalone in an existing override for ts files', async () => { tree.write('eslint.config.js', 'module.exports = [];'); tree.write( 'apps/app1/eslint.config.js', `module.exports = [ { files: ['*.ts'], rules: { 'no-unused-vars': 'error' }, }, ]; ` );
await migration(tree);
expect(tree.read('apps/app1/eslint.config.js', 'utf8')) .toMatchInlineSnapshot(` "module.exports = [ { files: ['**/*.ts'], rules: { 'no-unused-vars': 'error', '@angular-eslint/prefer-standalone': 'off', }, }, ]; " `);});
it('should disable @angular-eslint/prefer-standalone in a new override', async () => { tree.write('eslint.config.js', 'module.exports = [];'); tree.write( 'apps/app1/eslint.config.js', `module.exports = [ { files: ['*.html'], rules: { 'some-rule-for-html': 'error' }, }, ]; ` );
await migration(tree);
expect(tree.read('apps/app1/eslint.config.js', 'utf8')) .toMatchInlineSnapshot(` "module.exports = [ { files: ['*.html'], rules: { 'some-rule-for-html': 'error' }, }, { files: ['**/*.ts'], rules: { '@angular-eslint/prefer-standalone': 'off', }, }, ]; " `);});}); });
remove-angular-eslint-rules
Section titled “remove-angular-eslint-rules”Version: 20.2.0-beta.8
Remove Angular ESLint rules that were removed in v19.0.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.0.0 |
Remove Angular ESLint Rules
Section titled “Remove Angular ESLint Rules”Remove Angular ESLint rules that were removed in v19.0.0.
Sample Code Changes
Section titled “Sample Code Changes”Removes @angular-eslint/no-host-metadata-property, @angular-eslint/sort-ngmodule-metadata-arrays and @angular-eslint/prefer-standalone-component from any ESLint config file. Files to be searched include .eslintrc.json, .eslintrc.base.json, .eslint.config.js and .eslint.config.base.js.
Before
Section titled “Before”{ "overrides": [ { "files": ["*.ts"], "rules": { "@angular-eslint/no-host-metadata-property": ["error"], "@angular-eslint/sort-ngmodule-metadata-arrays": ["error"], "@angular-eslint/prefer-standalone-component": ["error"] } } ]}{ "overrides": [ { "files": ["*.ts"], "rules": {} } ]}remove-tailwind-config-from-ng-packagr-executors
Section titled “remove-tailwind-config-from-ng-packagr-executors”Version: 20.2.0-beta.8
Remove the deprecated ‘tailwindConfig’ option from ng-packagr executors. Tailwind CSS configurations located at the project or workspace root will be picked up automatically.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=19.0.0 |
Remove tailwindConfig from ng-packagr Executors
Section titled “Remove tailwindConfig from ng-packagr Executors”Remove the deprecated ‘tailwindConfig’ option from ng-packagr executors. Tailwind CSS configurations located at the project or workspace root will be picked up automatically.
Sample Code Changes
Section titled “Sample Code Changes”Remove tailwindConfig from the @nx/angular:ng-packagr-lite or @nx/angular:package executor options in project configuration.
Before
Section titled “Before”{ "targets": { "build": { "executor": "@nx/angular:ng-packagr-lite", "options": { "project": "libs/lib1/ng-package.json", "tailwindConfig": "libs/lib1/tailwind.config.js" } } }}{ "targets": { "build": { "executor": "@nx/angular:ng-packagr-lite", "options": { "project": "libs/lib1/ng-package.json" } } }}Remove tailwindConfig from the @nx/angular:ng-packagr-lite or @nx/angular:package executor target defaults in nx.json.
Before
Section titled “Before”{ "targetDefaults": { "@nx/angular:ng-packagr-lite": { "options": { "project": "{projectRoot}/ng-package.json", "tailwindConfig": "{projectRoot}/tailwind.config.js" } } }}{ "targetDefaults": { "@nx/angular:ng-packagr-lite": { "options": { "project": "{projectRoot}/ng-package.json" } } }}20.2.0-module-federation-package-updates
Section titled “20.2.0-module-federation-package-updates”Version: 20.2.0-beta.3
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@module-federation/enhanced | 0.7.6 | Updated only |
@module-federation/runtime | 0.7.6 | Updated only |
@module-federation/sdk | 0.7.6 | Updated only |
@module-federation/node | 2.6.11 | Updated only |
20.2.0-package-updates
Section titled “20.2.0-package-updates”Version: 20.2.0-beta.5
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~19.0.0 | Updated only |
@angular-devkit/core | ~19.0.0 | Updated only |
@angular-devkit/schematics | ~19.0.0 | Updated only |
@angular/build | ~19.0.0 | Updated only |
@angular/pwa | ~19.0.0 | Updated only |
@angular/ssr | ~19.0.0 | Updated only |
@schematics/angular | ~19.0.0 | Updated only |
@angular-devkit/architect | ~0.1900.0 | Updated only |
@angular-devkit/build-webpack | ~0.1900.0 | Updated only |
@angular/core | ~19.0.0 | Added if not installed |
@angular/material | ~19.0.0 | Updated only |
@angular/cdk | ~19.0.0 | Updated only |
@angular/google-maps | ~19.0.0 | Updated only |
ng-packagr | ~19.0.0 | Updated only |
zone.js | ~0.15.0 | Updated only |
20.2.0-jest-package-updates
Section titled “20.2.0-jest-package-updates”Version: 20.2.0-beta.5
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
jest-preset-angular | ~14.4.0 | Updated only |
20.2.0-angular-eslint-package-updates
Section titled “20.2.0-angular-eslint-package-updates”Version: 20.2.0-beta.5
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^19.0.0 | Updated only |
@angular-eslint/eslint-plugin | ^19.0.0 | Updated only |
@angular-eslint/eslint-plugin-template | ^19.0.0 | Updated only |
@angular-eslint/template-parser | ^19.0.0 | Updated only |
@angular-eslint/utils | ^19.0.0 | Updated only |
@angular-eslint/schematics | ^19.0.0 | Updated only |
@angular-eslint/test-utils | ^19.0.0 | Updated only |
@angular-eslint/builder | ^19.0.0 | Updated only |
@angular-eslint/bundled-angular-compiler | ^19.0.0 | Updated only |
20.2.0-analog-package-updates
Section titled “20.2.0-analog-package-updates”Version: 20.2.0-beta.7
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@analogjs/vitest-angular | ~1.10.0 | Updated only |
@analogjs/vite-plugin-angular | ~1.10.0 | Updated only |
20.2.2-angular-eslint-package-updates
Section titled “20.2.2-angular-eslint-package-updates”Version: 20.2.2-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
angular-eslint | ^19.0.2 | Updated only |
@angular-eslint/eslint-plugin | ^19.0.2 | Updated only |
@angular-eslint/eslint-plugin-template | ^19.0.2 | Updated only |
@angular-eslint/template-parser | ^19.0.2 | Updated only |
@angular-eslint/utils | ^19.0.2 | Updated only |
@angular-eslint/schematics | ^19.0.2 | Updated only |
@angular-eslint/test-utils | ^19.0.2 | Updated only |
@angular-eslint/builder | ^19.0.2 | Updated only |
@angular-eslint/bundled-angular-compiler | ^19.0.2 | Updated only |
19.7.x
Section titled “19.7.x”19.7.0-package-updates
Section titled “19.7.0-package-updates”Version: 19.7.0-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@module-federation/enhanced | ~0.6.0 | Updated only |
@module-federation/node | ~2.5.0 | Updated only |
19.6.x
Section titled “19.6.x”update-19-6-0
Section titled “update-19-6-0”Version: 19.6.0-beta.4
Ensure Module Federation DTS is turned off by default.
update-angular-cli-version-18-2-0
Section titled “update-angular-cli-version-18-2-0”Version: 19.6.0-beta.7
Update the @angular/cli package version to ~18.2.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=18.2.0 |
update-19-6-1-ensure-module-federation-target-defaults
Section titled “update-19-6-1-ensure-module-federation-target-defaults”Version: 19.6.1-beta.0
Ensure Target Defaults are set correctly for Module Federation.
19.6.0-package-updates
Section titled “19.6.0-package-updates”Version: 19.6.0-beta.7
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~18.2.0 | Updated only |
@angular-devkit/core | ~18.2.0 | Updated only |
@angular-devkit/schematics | ~18.2.0 | Updated only |
@angular/build | ~18.2.0 | Updated only |
@angular/pwa | ~18.2.0 | Updated only |
@angular/ssr | ~18.2.0 | Updated only |
@schematics/angular | ~18.2.0 | Updated only |
@angular-devkit/architect | ~0.1802.0 | Updated only |
@angular-devkit/build-webpack | ~0.1802.0 | Updated only |
@angular/core | ~18.2.0 | Added if not installed |
@angular/material | ~18.2.0 | Updated only |
@angular/cdk | ~18.2.0 | Updated only |
ng-packagr | ~18.2.0 | Updated only |
zone.js | ~0.14.10 | Updated only |
19.6.1-ngrx-package-updates
Section titled “19.6.1-ngrx-package-updates”Version: 19.6.1-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@ngrx/store | ^18.0.2 | Updated only |
19.5.x
Section titled “19.5.x”update-angular-cli-version-18-1-0
Section titled “update-angular-cli-version-18-1-0”Version: 19.5.0-beta.1
Update the @angular/cli package version to ~18.1.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular/core | >=18.1.0 |
19.5.0-module-federation-package-updates
Section titled “19.5.0-module-federation-package-updates”Version: 19.5.0-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@module-federation/node | ^2.3.0 | Updated only |
19.5.0-package-updates
Section titled “19.5.0-package-updates”Version: 19.5.0-beta.1
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-devkit/build-angular | ~18.1.0 | Updated only |
@angular-devkit/core | ~18.1.0 | Updated only |
@angular-devkit/schematics | ~18.1.0 | Updated only |
@angular/build | ~18.1.0 | Updated only |
@angular/pwa | ~18.1.0 | Updated only |
@angular/ssr | ~18.1.0 | Updated only |
@schematics/angular | ~18.1.0 | Updated only |
@angular-devkit/architect | ~0.1801.0 | Updated only |
@angular-devkit/build-webpack | ~0.1801.0 | Updated only |
@angular/core | ~18.1.0 | Added if not installed |
@angular/material | ~18.1.0 | Updated only |
@angular/cdk | ~18.1.0 | Updated only |
ng-packagr | ~18.1.0 | Updated only |
19.5.4-ngrx-package-updates
Section titled “19.5.4-ngrx-package-updates”Version: 19.5.4-beta.0
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@ngrx/store | ^18.0.1 | Updated only |
@ngrx/operators | ^18.0.1 | Updated only |
19.4.x
Section titled “19.4.x”19.4.0-ngrx-package-updates
Section titled “19.4.0-ngrx-package-updates”Version: 19.4.0-beta.1
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@ngrx/store | ^18.0.0 | Updated only |
19.2.x
Section titled “19.2.x”add-typescript-eslint-utils
Section titled “add-typescript-eslint-utils”Version: 19.2.1-beta.0
Installs the ‘@typescript-eslint/utils’ package when having installed ‘@angular-eslint/eslint-plugin’ or ‘@angular-eslint/eslint-plugin-template’ with version >=18.0.0.
Requires
Section titled “Requires”| Name | Version |
|---|---|
@angular-eslint/eslint-plugin | >=18.0.0 |
19.1.x
Section titled “19.1.x”19.1.2-package-updates
Section titled “19.1.2-package-updates”Version: 19.1.2-beta.1
Packages
Section titled “Packages”The following packages will be updated:
| Name | Version | Always add to package.json |
|---|---|---|
@angular-eslint/eslint-plugin | ^18.0.1 | Updated only |
@angular-eslint/eslint-plugin-template | ^18.0.1 | Updated only |
@angular-eslint/template-parser | ^18.0.1 | Updated only |
@angular-eslint/utils | ^18.0.1 | Updated only |
@angular-eslint/schematics | ^18.0.1 | Updated only |
@angular-eslint/test-utils | ^18.0.1 | Updated only |
@angular-eslint/builder | ^18.0.1 | Updated only |
@angular-eslint/bundled-angular-compiler | ^18.0.1 | Updated only |