Sample Code Changes
Update the @angular/cli package version in the package.json file at the workspace root to ~20.1.0.
1{
2 "devDependencies": {
3 "@angular/cli": "~20.0.0"
4 }
5}
6Here is a list of all migrations available for this package.
Requires
| Name | Version |
|---|---|
| @angular/compiler-cli | >=18.0.0 <21.0.0 |
| @angular/core | >=18.0.0 <21.0.0 |
| @angular/platform-browser-dynamic | >=18.0.0 <21.0.0 |
| jest | ^30.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~15.0.0 | Update only |
Update the @angular/cli package version to ~20.1.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=20.1.0 |
Update the @angular/cli package version in the package.json file at the workspace root to ~20.1.0.
1{
2 "devDependencies": {
3 "@angular/cli": "~20.0.0"
4 }
5}
6Requires
| Name | Version |
|---|---|
| @angular/core | >=20.0.0 <20.1.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~20.1.0 | Update only |
| @angular-devkit/core | ~20.1.0 | Update only |
| @angular-devkit/schematics | ~20.1.0 | Update only |
| @angular/build | ~20.1.0 | Update only |
| @angular/pwa | ~20.1.0 | Update only |
| @angular/ssr | ~20.1.0 | Update only |
| @schematics/angular | ~20.1.0 | Update only |
| @angular-devkit/architect | ~0.2001.0 | Update only |
| @angular-devkit/build-webpack | ~0.2001.0 | Update only |
| @angular/core | ~20.1.0 | Add if not installed |
| @angular/material | ~20.1.0 | Update only |
| @angular/cdk | ~20.1.0 | Update only |
| @angular/google-maps | ~20.1.0 | Update only |
| ng-packagr | ~20.1.0 | Update only |
Update the @angular/cli package version to ~20.0.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=20.0.0 |
Update the @angular/cli package version in the package.json file at the workspace root to ~20.0.0.
1{
2 "devDependencies": {
3 "@angular/cli": "~19.2.0"
4 }
5}
6Migrate imports of `provideServerRendering` from `@angular/platform-server` to `@angular/ssr`.
Requires
| Name | Version |
|---|---|
| @angular/core | >=20.0.0 |
provideServerRendering from @angular/platform-server to @angular/ssrMigrate 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.
Change the import of provideServerRendering from @angular/platform-server to @angular/ssr:
1import { ApplicationConfig } from '@angular/core';
2import { provideServerRendering } from '@angular/platform-server';
3
4const serverConfig: ApplicationConfig = {
5 providers: [provideServerRendering()],
6};
7If you already have imports from @angular/ssr, the migration will add provideServerRendering to the existing import:
1import { ApplicationConfig } from '@angular/core';
2import { provideServerRendering } from '@angular/platform-server';
3import { provideServerRouting } from '@angular/ssr';
4import { serverRoutes } from './app.routes.server';
5
6const serverConfig: ApplicationConfig = {
7 providers: [provideServerRendering(), provideServerRouting(serverRoutes)],
8};
9Replace `provideServerRouting` and `provideServerRoutesConfig` with `provideServerRendering` using `withRoutes`.
Requires
| Name | Version |
|---|---|
| @angular/core | >=20.0.0 |
provideServerRouting and provideServerRoutesConfig with provideServerRenderingReplace provideServerRouting and provideServerRoutesConfig calls with provideServerRendering using withRoutes.
Remove provideServerRouting from your providers array and update the provideServerRendering call to use withRoutes:
1import { ApplicationConfig } from '@angular/core';
2import { provideServerRendering, provideServerRouting } from '@angular/ssr';
3import { serverRoutes } from './app.routes.server';
4
5const serverConfig: ApplicationConfig = {
6 providers: [provideServerRendering(), provideServerRouting(serverRoutes)],
7};
8If you have provideServerRouting with additional arguments, the migration will preserve them:
1import { ApplicationConfig } from '@angular/core';
2import {
3 provideServerRendering,
4 provideServerRouting,
5 withAppShell,
6} from '@angular/ssr';
7import { serverRoutes } from './app.routes.server';
8
9const serverConfig: ApplicationConfig = {
10 providers: [
11 provideServerRendering(),
12 provideServerRouting(serverRoutes, withAppShell(AppShellComponent)),
13 ],
14};
15Remove provideServerRoutesConfig from your providers array and update the provideServerRendering call to use withRoutes:
1import { ApplicationConfig } from '@angular/core';
2import {
3 provideServerRendering,
4 provideServerRoutesConfig,
5 withAppShell,
6} from '@angular/ssr';
7import { serverRoutes } from './app.routes.server';
8
9const serverConfig: ApplicationConfig = {
10 providers: [
11 provideServerRendering(),
12 provideServerRoutesConfig(serverRoutes, withAppShell(AppShellComponent)),
13 ],
14};
15Update the generator defaults to maintain the previous style guide behavior.
Requires
| Name | Version |
|---|---|
| @angular/core | >=20.0.0 |
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.
The migration will add default configurations for the relevant Angular generators in the workspace's nx.json file:
1{
2 "generators": {}
3}
4If some of the generator defaults are already set, the migration will not override them:
1{
2 "generators": {
3 "@nx/angular:component": {
4 "type": "cmp"
5 },
6 "@schematics/angular:component": {
7 "type": "cmp"
8 },
9 "@nx/angular:interceptor": {
10 "typeSeparator": "-"
11 },
12 "@schematics/angular:interceptor": {
13 "typeSeparator": "-"
14 }
15 }
16}
17Update 'moduleResolution' to 'bundler' in TypeScript configurations. You can read more about this here: https://www.typescriptlang.org/tsconfig/#moduleResolution.
Requires
| Name | Version |
|---|---|
| @angular/core | >=20.0.0 |
moduleResolution to bundler in TypeScript configurationsUpdates the TypeScript moduleResolution option to 'bundler' for improved compatibility with modern package resolution algorithms used by bundlers like Webpack, Vite, and esbuild.
The migration will update TypeScript configuration files in your workspace to use the 'bundler' module resolution strategy:
1{
2 "compilerOptions": {
3 "module": "es2020",
4 "moduleResolution": "node"
5 }
6}
7If the moduleResolution is already set to 'bundler' or the module is set to 'preserve', the migration will not modify the configuration:
1{
2 "compilerOptions": {
3 "module": "preserve",
4 "moduleResolution": "node"
5 }
6}
7Requires
| Name | Version |
|---|---|
| @angular/core | >=19.2.0 <20.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~20.0.0 | Update only |
| @angular-devkit/core | ~20.0.0 | Update only |
| @angular-devkit/schematics | ~20.0.0 | Update only |
| @angular/build | ~20.0.0 | Update only |
| @angular/pwa | ~20.0.0 | Update only |
| @angular/ssr | ~20.0.0 | Update only |
| @schematics/angular | ~20.0.0 | Update only |
| @angular-devkit/architect | ~0.2000.0 | Update only |
| @angular-devkit/build-webpack | ~0.2000.0 | Update only |
| @angular/core | ~20.0.0 | Add if not installed |
| @angular/material | ~20.0.0 | Update only |
| @angular/cdk | ~20.0.0 | Update only |
| @angular/google-maps | ~20.0.0 | Update only |
| ng-packagr | ~20.0.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular/core | >= 20.0.0 < 21.0.0 |
| typescript-eslint | ^8.0.0 |
| eslint | ^8.57.0 || ^9.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| angular-eslint | ^20.0.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular/core | >= 20.0.0 < 21.0.0 |
| eslint | ^8.57.0 || ^9.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-eslint/eslint-plugin | ^20.0.0 | Update only |
| @angular-eslint/eslint-plugin-template | ^20.0.0 | Update only |
| @angular-eslint/template-parser | ^20.0.0 | Update only |
| @angular-eslint/utils | ^20.0.0 | Update only |
| @angular-eslint/schematics | ^20.0.0 | Update only |
| @angular-eslint/test-utils | ^20.0.0 | Update only |
| @angular-eslint/builder | ^20.0.0 | Update only |
| @angular-eslint/bundled-angular-compiler | ^20.0.0 | Update only |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @nx/angular-rspack | ^21.1.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular/compiler-cli | >=15.0.0 <21.0.0 |
| @angular/core | >=15.0.0 <21.0.0 |
| @angular/platform-browser-dynamic | >=15.0.0 <21.0.0 |
| jest | ^29.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~14.6.0 | Update only |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @nx/angular-rspack | ^21.0.1 | Update only |
Change the data persistence operator imports to '@ngrx/router-store/data-persistence'.
Requires
| Name | Version |
|---|---|
| @ngrx/store | >=16.0.0 |
@nx/angular to @ngrx/router-store/data-persistenceThe 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.
If you import only data persistence operators from @nx/angular, the migration will update the import path to @ngrx/router-store/data-persistence.
1import { Actions, createEffect, ofType } from '@ngrx/effects';
2import { fetch } from '@nx/angular';
3
4()
5export class UsersEffects {
6 // ...
7}
8If you import multiple data persistence operators from @nx/angular, the migration will update the import path for all of them.
1import { Injectable } from '@angular/core';
2import { fetch, navigation } from '@nx/angular';
3
4()
5export class UsersEffects {
6 // ...
7}
8If your imports mix data persistence operators with other utilities from @nx/angular, the migration will split them into separate import statements.
1import { Injectable } from '@angular/core';
2import { fetch, someExtraUtility, navigation } from '@nx/angular';
3
4()
5export class UsersEffects {
6 // ...
7}
8If you don't already have @ngrx/router-store in your dependencies, the migration will add it to your package.json.
1{
2 "dependencies": {
3 "@nx/angular": "^21.0.0",
4 "@ngrx/store": "^19.1.0",
5 "@ngrx/effects": "^19.1.0"
6 // ...
7 }
8}
9Set the `continuous` option to `true` for continuous tasks.
continuous Option for Continuous TasksThis 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-ssr1{
2 // ...
3 "targets": {
4 // ...
5 "serve": {
6 "executor": "@angular-devkit/build-angular:dev-server",
7 "options": {
8 "buildTarget": "my-app:build",
9 "port": 4200
10 }
11 }
12 }
13}
14When a target is already explicitly configured with a continuous option, the migration will not modify it:
1{
2 // ...
3 "targets": {
4 // ...
5 "serve": {
6 "continuous": false,
7 "executor": "@nx/angular:dev-server",
8 "options": {
9 "buildTarget": "my-app:build",
10 "port": 4200
11 }
12 }
13 }
14}
15Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @nx/angular-rspack | ^20.7.0 | Update only |
Requires
| Name | Version |
|---|---|
| eslint | ^8.57.0 || ^9.0.0 |
| @angular/core | >= 19.0.0 < 20.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| angular-eslint | ^19.2.0 | Update only |
| @angular-eslint/eslint-plugin | ^19.2.0 | Update only |
| @angular-eslint/eslint-plugin-template | ^19.2.0 | Update only |
| @angular-eslint/template-parser | ^19.2.0 | Update only |
| @angular-eslint/utils | ^19.2.0 | Update only |
| @angular-eslint/schematics | ^19.2.0 | Update only |
| @angular-eslint/test-utils | ^19.2.0 | Update only |
| @angular-eslint/builder | ^19.2.0 | Update only |
| @angular-eslint/bundled-angular-compiler | ^19.2.0 | Update only |
Update the @angular/cli package version to ~19.2.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.2.0 |
Update the @angular/cli package version in the package.json file at the workspace root to ~19.2.0.
1{
2 "devDependencies": {
3 "@angular/cli": "~19.1.0"
4 }
5}
6Requires
| Name | Version |
|---|---|
| @angular/core | >=19.1.0 <19.2.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~19.2.0 | Update only |
| @angular-devkit/core | ~19.2.0 | Update only |
| @angular-devkit/schematics | ~19.2.0 | Update only |
| @angular/build | ~19.2.0 | Update only |
| @angular/pwa | ~19.2.0 | Update only |
| @angular/ssr | ~19.2.0 | Update only |
| @schematics/angular | ~19.2.0 | Update only |
| @angular-devkit/architect | ~0.1902.0 | Update only |
| @angular-devkit/build-webpack | ~0.1902.0 | Update only |
| @angular/core | ~19.2.0 | Add if not installed |
| @angular/material | ~19.2.1 | Update only |
| @angular/cdk | ~19.2.1 | Update only |
| @angular/google-maps | ~19.2.1 | Update only |
| ng-packagr | ~19.2.0 | Update only |
Update the @angular/cli package version to ~19.1.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.1.0 |
@angular/cli to ~19.1.0Update the version of the Angular CLI if it is specified in package.json
Update in devDependencies:
1{
2 "devDependencies": {
3 "@angular/cli": "~13.3.0"
4 }
5}
6Update in dependencies:
1{
2 "dependencies": {
3 "@angular/cli": "~13.3.0"
4 }
5}
6Requires
| Name | Version |
|---|---|
| @angular/core | >=19.0.0 <19.1.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~19.1.0 | Update only |
| @angular-devkit/core | ~19.1.0 | Update only |
| @angular-devkit/schematics | ~19.1.0 | Update only |
| @angular/build | ~19.1.0 | Update only |
| @angular/pwa | ~19.1.0 | Update only |
| @angular/ssr | ~19.1.0 | Update only |
| @schematics/angular | ~19.1.0 | Update only |
| @angular-devkit/architect | ~0.1901.0 | Update only |
| @angular-devkit/build-webpack | ~0.1901.0 | Update only |
| @angular/core | ~19.1.0 | Add if not installed |
| @angular/material | ~19.1.0 | Update only |
| @angular/cdk | ~19.1.0 | Update only |
| @angular/google-maps | ~19.1.0 | Update only |
| ng-packagr | ~19.1.0 | Update only |
If workspace includes Module Federation projects, ensure the new @nx/module-federation package is installed.
If workspace includes Module Federation projects, ensure the new @nx/module-federation package is installed.
1{
2 "dependencies": {}
3}
4Requires
| Name | Version |
|---|---|
| @angular/core | ^19.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @ngrx/store | ^19.0.0 | Update only |
Requires
| Name | Version |
|---|---|
| eslint | ^8.57.0 || ^9.0.0 |
| @angular/core | >= 19.0.0 < 20.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| angular-eslint | ^19.0.2 | Update only |
| @angular-eslint/eslint-plugin | ^19.0.2 | Update only |
| @angular-eslint/eslint-plugin-template | ^19.0.2 | Update only |
| @angular-eslint/template-parser | ^19.0.2 | Update only |
| @angular-eslint/utils | ^19.0.2 | Update only |
| @angular-eslint/schematics | ^19.0.2 | Update only |
| @angular-eslint/test-utils | ^19.0.2 | Update only |
| @angular-eslint/builder | ^19.0.2 | Update only |
| @angular-eslint/bundled-angular-compiler | ^19.0.2 | Update only |
Remove Angular ESLint rules that were removed in v19.0.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.0.0 |
Remove Angular ESLint rules that were removed in v19.0.0.
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.
1{
2 "overrides": [
3 {
4 "files": ["*.ts"],
5 "rules": {
6 "@angular-eslint/no-host-metadata-property": ["error"],
7 "@angular-eslint/sort-ngmodule-metadata-arrays": ["error"],
8 "@angular-eslint/prefer-standalone-component": ["error"]
9 }
10 }
11 ]
12}
13Remove the deprecated 'tailwindConfig' option from ng-packagr executors. Tailwind CSS configurations located at the project or workspace root will be picked up automatically.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.0.0 |
Remove the deprecated 'tailwindConfig' option from ng-packagr executors. Tailwind CSS configurations located at the project or workspace root will be picked up automatically.
Remove tailwindConfig from the @nx/angular:ng-packagr-lite or @nx/angular:package executor options in project configuration.
1{
2 "targets": {
3 "build": {
4 "executor": "@nx/angular:ng-packagr-lite",
5 "options": {
6 "project": "libs/lib1/ng-package.json",
7 "tailwindConfig": "libs/lib1/tailwind.config.js"
8 }
9 }
10 }
11}
12Remove tailwindConfig from the @nx/angular:ng-packagr-lite or @nx/angular:package executor target defaults in nx.json.
1{
2 "targetDefaults": {
3 "@nx/angular:ng-packagr-lite": {
4 "options": {
5 "project": "{projectRoot}/ng-package.json",
6 "tailwindConfig": "{projectRoot}/tailwind.config.js"
7 }
8 }
9 }
10}
11Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @analogjs/vitest-angular | ~1.10.0 | Update only |
| @analogjs/vite-plugin-angular | ~1.10.0 | Update only |
Disable the Angular ESLint prefer-standalone rule if not set.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.0.0 |
Disable the Angular ESLint prefer-standalone rule if not set.
Update import paths for withModuleFederation and withModuleFederationForSSR.
1{
2 "overrides": [
3 {
4 "files": ["*.html"],
5 "rules": {
6 "some-rule-for-html": "error"
7 }
8 }
9 ]
10}
11import { 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', }, }, ]; " ); });
}); });
Update the @angular/cli package version to ~19.0.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.0.0 |
@angular/cli to ~19.0.0Update the version of the Angular CLI if it is specified in package.json
Update in devDependencies:
1{
2 "devDependencies": {
3 "@angular/cli": "~13.3.0"
4 }
5}
6Update in dependencies:
1{
2 "dependencies": {
3 "@angular/cli": "~13.3.0"
4 }
5}
6Add the '@angular/localize/init' polyfill to the 'polyfills' option of targets using esbuild-based executors.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.0.0 |
Add the '@angular/localize/init' polyfill to the 'polyfills' option of targets using esbuild-based executors.
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-esbuild1{
2 "targets": {
3 "build": {
4 "executor": "@angular/build:application",
5 "options": {
6 "localize": true
7 }
8 }
9 }
10}
11Update '@angular/ssr' import paths to use the new '/node' entry point when 'CommonEngine' is detected.
Requires
| Name | Version |
|---|---|
| @angular/core | >=19.0.0 |
Update '@angular/ssr' import paths to use the new '/node' entry point when 'CommonEngine' is detected.
Update import paths for SSR CommonEngine properties to use @angular/ssr/node.
1import { CommonEngine } from '@angular/ssr';
2import type {
3 CommonEngineOptions,
4 CommonEngineRenderOptions,
5} from '@angular/ssr';
6Requires
| Name | Version |
|---|---|
| @angular/core | >=18.2.0 <19.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~19.0.0 | Update only |
| @angular-devkit/core | ~19.0.0 | Update only |
| @angular-devkit/schematics | ~19.0.0 | Update only |
| @angular/build | ~19.0.0 | Update only |
| @angular/pwa | ~19.0.0 | Update only |
| @angular/ssr | ~19.0.0 | Update only |
| @schematics/angular | ~19.0.0 | Update only |
| @angular-devkit/architect | ~0.1900.0 | Update only |
| @angular-devkit/build-webpack | ~0.1900.0 | Update only |
| @angular/core | ~19.0.0 | Add if not installed |
| @angular/material | ~19.0.0 | Update only |
| @angular/cdk | ~19.0.0 | Update only |
| @angular/google-maps | ~19.0.0 | Update only |
| ng-packagr | ~19.0.0 | Update only |
| zone.js | ~0.15.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular-devkit/build-angular | >=15.0.0 <20.0.0 |
| @angular/compiler-cli | >=15.0.0 <20.0.0 |
| @angular/core | >=15.0.0 <20.0.0 |
| @angular/platform-browser-dynamic | >=15.0.0 <20.0.0 |
| jest | ^29.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~14.4.0 | Update only |
Requires
| Name | Version |
|---|---|
| eslint | ^8.57.0 || ^9.0.0 |
| @angular/core | >= 19.0.0 < 20.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| angular-eslint | ^19.0.0 | Update only |
| @angular-eslint/eslint-plugin | ^19.0.0 | Update only |
| @angular-eslint/eslint-plugin-template | ^19.0.0 | Update only |
| @angular-eslint/template-parser | ^19.0.0 | Update only |
| @angular-eslint/utils | ^19.0.0 | Update only |
| @angular-eslint/schematics | ^19.0.0 | Update only |
| @angular-eslint/test-utils | ^19.0.0 | Update only |
| @angular-eslint/builder | ^19.0.0 | Update only |
| @angular-eslint/bundled-angular-compiler | ^19.0.0 | Update only |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @module-federation/enhanced | 0.7.6 | Update only |
| @module-federation/runtime | 0.7.6 | Update only |
| @module-federation/sdk | 0.7.6 | Update only |
| @module-federation/node | 2.6.11 | Update only |
Update the ModuleFederationConfig import use @nx/module-federation.
Update the ModuleFederationConfig imports to use @nx/module-federation.
Update import paths for ModuleFederationConfig.
1import { ModuleFederationConfig } from '@nx/webpack';
2Update the withModuleFederation import use @nx/module-federation/angular.
Update the withModuleFederation import to use @nx/module-federation/webpack.
Update import paths for withModuleFederation and withModuleFederationForSSR.
1import {
2 withModuleFederation,
3 withModuleFederationForSSR,
4} from '@nx/angular/module-federation';
5Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @module-federation/enhanced | ~0.6.0 | Update only |
| @module-federation/node | ~2.5.0 | Update only |
Ensure Target Defaults are set correctly for Module Federation.
Requires
| Name | Version |
|---|---|
| @angular/core | ^18.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @ngrx/store | ^18.0.2 | Update only |
Update the @angular/cli package version to ~18.2.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=18.2.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=18.1.0 <18.2.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~18.2.0 | Update only |
| @angular-devkit/core | ~18.2.0 | Update only |
| @angular-devkit/schematics | ~18.2.0 | Update only |
| @angular/build | ~18.2.0 | Update only |
| @angular/pwa | ~18.2.0 | Update only |
| @angular/ssr | ~18.2.0 | Update only |
| @schematics/angular | ~18.2.0 | Update only |
| @angular-devkit/architect | ~0.1802.0 | Update only |
| @angular-devkit/build-webpack | ~0.1802.0 | Update only |
| @angular/core | ~18.2.0 | Add if not installed |
| @angular/material | ~18.2.0 | Update only |
| @angular/cdk | ~18.2.0 | Update only |
| ng-packagr | ~18.2.0 | Update only |
| zone.js | ~0.14.10 | Update only |
Ensure Module Federation DTS is turned off by default.
Requires
| Name | Version |
|---|---|
| @angular/core | ^18.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @ngrx/store | ^18.0.1 | Update only |
| @ngrx/operators | ^18.0.1 | Update only |
Update the @angular/cli package version to ~18.1.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=18.1.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=18.0.0 <18.1.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~18.1.0 | Update only |
| @angular-devkit/core | ~18.1.0 | Update only |
| @angular-devkit/schematics | ~18.1.0 | Update only |
| @angular/build | ~18.1.0 | Update only |
| @angular/pwa | ~18.1.0 | Update only |
| @angular/ssr | ~18.1.0 | Update only |
| @schematics/angular | ~18.1.0 | Update only |
| @angular-devkit/architect | ~0.1801.0 | Update only |
| @angular-devkit/build-webpack | ~0.1801.0 | Update only |
| @angular/core | ~18.1.0 | Add if not installed |
| @angular/material | ~18.1.0 | Update only |
| @angular/cdk | ~18.1.0 | Update only |
| ng-packagr | ~18.1.0 | Update only |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @module-federation/node | ^2.3.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular/core | ^18.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @ngrx/store | ^18.0.0 | Update only |
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
| Name | Version |
|---|---|
| @angular-eslint/eslint-plugin | >=18.0.0 |
Requires
| Name | Version |
|---|---|
| eslint | ^8.57.0 || ^9.0.0 |
| @angular/core | >= 18.0.0 < 19.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-eslint/eslint-plugin | ^18.0.1 | Update only |
| @angular-eslint/eslint-plugin-template | ^18.0.1 | Update only |
| @angular-eslint/template-parser | ^18.0.1 | Update only |
| @angular-eslint/utils | ^18.0.1 | Update only |
| @angular-eslint/schematics | ^18.0.1 | Update only |
| @angular-eslint/test-utils | ^18.0.1 | Update only |
| @angular-eslint/builder | ^18.0.1 | Update only |
| @angular-eslint/bundled-angular-compiler | ^18.0.1 | Update only |
Update the @angular/cli package version to ~18.0.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=18.0.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.3.0 <18.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~18.0.0 | Update only |
| @angular-devkit/core | ~18.0.0 | Update only |
| @angular-devkit/schematics | ~18.0.0 | Update only |
| @angular/pwa | ~18.0.0 | Update only |
| @angular/ssr | ~18.0.0 | Update only |
| @schematics/angular | ~18.0.0 | Update only |
| @angular-devkit/architect | ~0.1800.0 | Update only |
| @angular-devkit/build-webpack | ~0.1800.0 | Update only |
| @angular/core | ~18.0.0 | Add if not installed |
| @angular/material | ~18.0.0 | Update only |
| @angular/cdk | ~18.0.0 | Update only |
| ng-packagr | ~18.0.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular-devkit/build-angular | >=15.0.0 <19.0.0 |
| @angular/compiler-cli | >=15.0.0 <19.0.0 |
| @angular/core | >=15.0.0 <19.0.0 |
| @angular/platform-browser-dynamic | >=15.0.0 <19.0.0 |
| jest | ^29.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~14.1.0 | Update only |
Update the @angular/cli package version to ~17.3.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.3.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.2.0 <17.3.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~17.3.0 | Update only |
| @angular-devkit/core | ~17.3.0 | Update only |
| @angular-devkit/schematics | ~17.3.0 | Update only |
| @angular/pwa | ~17.3.0 | Update only |
| @angular/ssr | ~17.3.0 | Update only |
| @schematics/angular | ~17.3.0 | Update only |
| @angular-devkit/architect | ~0.1703.0 | Update only |
| @angular-devkit/build-webpack | ~0.1703.0 | Update only |
| @angular/core | ~17.3.0 | Add if not installed |
| @angular/material | ~17.3.0 | Update only |
| @angular/cdk | ~17.3.0 | Update only |
| ng-packagr | ~17.3.0 | Update only |
Requires
| Name | Version |
|---|---|
| eslint | ^7.20.0 || ^8.0.0 |
| @angular/core | >= 17.0.0 < 18.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-eslint/eslint-plugin | ~17.3.0 | Update only |
| @angular-eslint/eslint-plugin-template | ~17.3.0 | Update only |
| @angular-eslint/template-parser | ~17.3.0 | Update only |
Ensure targetDefaults inputs for task hashing when '@nx/angular:webpack-browser' is used are correct for Module Federation.
Requires
| Name | Version |
|---|---|
| @angular-devkit/build-angular | >=15.0.0 <18.0.0 |
| @angular/compiler-cli | >=15.0.0 <18.0.0 |
| @angular/core | >=15.0.0 <18.0.0 |
| @angular/platform-browser-dynamic | >=15.0.0 <18.0.0 |
| jest | ^29.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~14.0.3 | Update only |
Update the @angular/cli package version to ~17.2.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.2.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.1.0 <17.2.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~17.2.0 | Update only |
| @angular-devkit/core | ~17.2.0 | Update only |
| @angular-devkit/schematics | ~17.2.0 | Update only |
| @angular/pwa | ~17.2.0 | Update only |
| @angular/ssr | ~17.2.0 | Update only |
| @schematics/angular | ~17.2.0 | Update only |
| @angular-devkit/architect | ~0.1702.0 | Update only |
| @angular-devkit/build-webpack | ~0.1702.0 | Update only |
| @angular/core | ~17.2.0 | Add if not installed |
| @angular/material | ~17.2.0 | Update only |
| @angular/cdk | ~17.2.0 | Update only |
| ng-packagr | ~17.2.0 | Update only |
Add NX_MF_DEV_SERVER_STATIC_REMOTES to inputs for task hashing when '@nx/angular:webpack-browser' is used for Module Federation.
Update the @angular/cli package version to ~17.1.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.1.0 |
Add 'browser-sync' as dev dependency when '@angular-devkit/build-angular:ssr-dev-server' or '@nx/angular:module-federation-dev-ssr' is used.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.1.0 |
Add 'autoprefixer' as dev dependency when '@nx/angular:ng-packagr-lite' or '@nx/angular:package` is used.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.1.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.0.0 <17.1.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/build-angular | ~17.1.0 | Update only |
| @angular-devkit/core | ~17.1.0 | Update only |
| @angular-devkit/schematics | ~17.1.0 | Update only |
| @angular/pwa | ~17.1.0 | Update only |
| @angular/ssr | ~17.1.0 | Update only |
| @schematics/angular | ~17.1.0 | Update only |
| @angular-devkit/architect | ~0.1701.0 | Update only |
| @angular-devkit/build-webpack | ~0.1701.0 | Update only |
| @angular/core | ~17.1.0 | Add if not installed |
| @angular/material | ~17.1.0 | Update only |
| @angular/cdk | ~17.1.0 | Update only |
| ng-packagr | ~17.1.0 | Update only |
| zone.js | ~0.14.3 | Update only |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @types/node | ^18.16.9 | Update only |
Requires
| Name | Version |
|---|---|
| @angular/core | ^17.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @ngrx/store | ~17.0.0 | Update only |
Rename '@nx/angular:webpack-dev-server' executor to '@nx/angular:dev-server'
Requires
| Name | Version |
|---|---|
| @angular-devkit/build-angular | >=13.0.0 <18.0.0 |
| @angular/compiler-cli | >=13.0.0 <18.0.0 |
| @angular/core | >=13.0.0 <18.0.0 |
| @angular/platform-browser-dynamic | >=13.0.0 <18.0.0 |
| jest | ^29.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~13.1.4 | Update only |
Update the @angular/cli package version to ~17.0.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.0.0 |
Rename 'browserTarget' to 'buildTarget'.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.0.0 |
Replace usages of '@nguniversal/builders' with '@angular-devkit/build-angular'.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.0.0 |
Replace usages of '@nguniversal/' packages with '@angular/ssr'.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.0.0 |
Replace the deep imports from 'zone.js/dist/zone' and 'zone.js/dist/zone-testing' with 'zone.js' and 'zone.js/testing'.
Requires
| Name | Version |
|---|---|
| @angular/core | >=17.0.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=16.2.0 <17.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/architect | ~0.1700.0 | Update only |
| @angular-devkit/build-angular | ~17.0.0 | Update only |
| @angular-devkit/build-webpack | ~0.1700.0 | Update only |
| @angular-devkit/core | ~17.0.0 | Update only |
| @angular-devkit/schematics | ~17.0.0 | Update only |
| @angular/pwa | ~17.0.0 | Update only |
| @angular/core | ~17.0.0 | Add if not installed |
| @angular/material | ~17.0.0 | Update only |
| @angular/cdk | ~17.0.0 | Update only |
| @schematics/angular | ~17.0.0 | Update only |
| ng-packagr | ~17.0.0 | Update only |
| zone.js | ~0.14.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular-devkit/build-angular | >=13.0.0 <18.0.0 |
| @angular/compiler-cli | >=13.0.0 <18.0.0 |
| @angular/core | >=13.0.0 <18.0.0 |
| @angular/platform-browser-dynamic | >=13.0.0 <18.0.0 |
| jest | ^29.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~13.1.3 | Update only |
Requires
| Name | Version |
|---|---|
| eslint | ^7.20.0 || ^8.0.0 |
| @angular/core | >= 17.0.0 < 18.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-eslint/eslint-plugin | ~17.0.0 | Update only |
| @angular-eslint/eslint-plugin-template | ~17.0.0 | Update only |
| @angular-eslint/template-parser | ~17.0.0 | Update only |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| esbuild | ^0.19.2 | Update only |
Update the @angular/cli package version to ~16.2.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=16.2.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=16.1.0 <16.2.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/architect | ~0.1602.0 | Update only |
| @angular-devkit/build-angular | ~16.2.0 | Update only |
| @angular-devkit/build-webpack | ~0.1602.0 | Update only |
| @angular-devkit/core | ~16.2.0 | Update only |
| @angular-devkit/schematics | ~16.2.0 | Update only |
| @angular/pwa | ~16.2.0 | Update only |
| @angular/core | ~16.2.0 | Add if not installed |
| @angular/material | ~16.2.0 | Update only |
| @angular/cdk | ~16.2.0 | Update only |
| @nguniversal/builders | ~16.2.0 | Update only |
| @nguniversal/common | ~16.2.0 | Update only |
| @nguniversal/express-engine | ~16.2.0 | Update only |
| @schematics/angular | ~16.2.0 | Update only |
| ng-packagr | ~16.2.0 | Update only |
Explicitly set 'updateBuildableProjectDepsInPackageJson' to 'true' in targets that rely on that value as the default.
Update the @angular/cli package version to ~16.1.0.
Requires
| Name | Version |
|---|---|
| @angular/core | >=16.1.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | >=16.0.0 <16.1.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-devkit/architect | ~0.1601.0 | Update only |
| @angular-devkit/build-angular | ~16.1.0 | Update only |
| @angular-devkit/build-webpack | ~0.1601.0 | Update only |
| @angular-devkit/core | ~16.1.0 | Update only |
| @angular-devkit/schematics | ~16.1.0 | Update only |
| @angular/pwa | ~16.1.0 | Update only |
| @angular/core | ~16.1.0 | Add if not installed |
| @angular/material | ~16.1.0 | Update only |
| @angular/cdk | ~16.1.0 | Update only |
| @nguniversal/builders | ~16.1.0 | Update only |
| @nguniversal/common | ~16.1.0 | Update only |
| @nguniversal/express-engine | ~16.1.0 | Update only |
| @schematics/angular | ~16.1.0 | Update only |
| ng-packagr | ~16.1.0 | Update only |
Remove the 'accessibility-' prefix from '@angular-eslint/eslint-plugin-template' rules.
Requires
| Name | Version |
|---|---|
| @angular-eslint/eslint-plugin-template | >=16.0.0 |
Switch the data persistence operator imports to '@ngrx/router-store/data-persistence'.
Requires
| Name | Version |
|---|---|
| @ngrx/store | >=16.0.0 |
Requires
| Name | Version |
|---|---|
| @angular/core | ^16.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @ngrx/store | ~16.0.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular-devkit/build-angular | >=13.0.0 <17.0.0 |
| @angular/compiler-cli | >=13.0.0 <17.0.0 |
| @angular/core | >=13.0.0 <17.0.0 |
| @angular/platform-browser-dynamic | >=13.0.0 <17.0.0 |
| jest | ^29.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| jest-preset-angular | ~13.1.0 | Update only |
Requires
| Name | Version |
|---|---|
| @angular/core | >=15.2.0 <16.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular/core | ~16.0.0 | Add if not installed |
| zone.js | ~0.13.0 | Update only |
| @angular-devkit/architect | ~0.1600.0 | Update only |
| @angular-devkit/build-angular | ~16.0.0 | Update only |
| @angular-devkit/build-webpack | ~0.1600.0 | Update only |
| @angular-devkit/core | ~16.0.0 | Update only |
| @angular-devkit/schematics | ~16.0.0 | Update only |
| @angular/pwa | ~16.0.0 | Update only |
| @schematics/angular | ~16.0.0 | Update only |
| ng-packagr | ~16.0.0 | Update only |
| @nguniversal/build-angular | ~16.0.0 | Update only |
| @nguniversal/builders | ~16.0.0 | Update only |
| @nguniversal/common | ~16.0.0 | Update only |
| @nguniversal/express-engine | ~16.0.0 | Update only |
| @angular/material | ~16.0.0 | Update only |
| @angular/cdk | ~16.0.0 | Update only |
Requires
| Name | Version |
|---|---|
| eslint | ^7.20.0 || ^8.0.0 |
| @angular/core | >=16.0.0 <17.0.0 |
Packages
| Name | Version | Always Add to package.json |
|---|---|---|
| @angular-eslint/eslint-plugin | ~16.0.0 | Update only |
| @angular-eslint/eslint-plugin-template | ~16.0.0 | Update only |
| @angular-eslint/template-parser | ~16.0.0 | Update only |