build(deps): Update Angular packages to v20 (major) #3127
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^19.2.14
->^20.0.0
^19.2.14
->^20.0.0
^19.2.18
->^20.0.1
^19.2.14
->^20.0.0
^19.2.14
->^20.0.0
^19.2.14
->^20.0.0
^19.2.14
->^20.0.0
^19.2.14
->^20.0.0
^19.2.18
->^20.0.1
^19.2.14
->^20.0.0
^19.2.14
->^20.0.0
Release Notes
angular/angular-cli (@angular-devkit/build-angular)
v20.0.0
Compare Source
Breaking Changes
@angular/cli
Node.js v18 is no longer supported with Angular.
Before updating a project to Angular v20, the Node.js version must be
at least 20.11.1. For the full list of supported Node.js versions,
see https://angular.dev/reference/versions.
Node.js versions from 22.0 to 22.10 are no longer supported
@schematics/angular
--server-routing
option has been removed from several schematics. Server routing will be used when using the application builder.@angular-devkit/schematics
The
NodePackageLinkTask
has been removed without a replacement. Create a custom task if needed.Note: This does not affect application developers.
@angular/build
@schematics/angular
moduleResolution
tobundler
@angular/build
in new projects--server-routing
option@angular/ssr
dependency only whenprovideServerRendering
import has been updated.ng.html
extensionwithAppShell
.ng.html
file extension.component
extension/typeprovideServerRoutesConfig
toprovideServerRendering
scripts
option value from new applicationsoutputPath
option value from generated applications@angular/cli
@angular-devkit/build-angular
@angular-devkit/schematics
NodePackageLinkTask
@angular/build
browser
optioncomposite
option with Angular compilercom.chrome.devtools.json
is consistently served after initial runcom.chrome.devtools.json
if project is moved@angular/pwa
@angular/ssr
provideServerRendering
and removeprovideServerRouting
AngularNodeAppEngine
,AngularAppEngine
, andprovideServerRouting
APIs@angular/router
@ngtools/webpack
angular/angular (@angular/animations)
v20.0.0
Compare Source
Breaking Changes
common
Y
formatter (week-numbering year) without also includingw
(week number) is now detected as suspicious date pattern, asy
is typically intended.AsyncPipe
now directly catches unhandled errors insubscriptions and promises and reports them to the application's
ErrorHandler
. For Zone-based applications, these errors would havebeen caught by ZoneJS and reported to
ErrorHandler
so the result isgenerally the same. The change to the exact mechanism for reporting can
result in differences in test environments that will require test
updates.
compiler
'in' in an expression now refers to the operator
void
in an expression now refers to the operatorPreviously an expression in the template like
{{void}}
referred to aproperty on the component class. After this change it now refers to the
void
operator, which would make the above example invalid. If you haveexisting expressions that need to refer to a property named
void
,change the expression to use
this.void
instead:{{this.void}}
.core
TypeScript versions less than 5.8 are no longer supported.
the
TestBed.flushEffects()
was removed - usethe
TestBed.tick()
instead.provideExperimentalCheckNoChangesForDebug
has severalbreaking changes:
provideCheckNoChangesConfig
useNgZoneOnStable
option is removed. This wasn't found to be generallymore useful than
interval
provideExperimentalZonelessChangeDetection
isrenamed to
provideZonelessChangeDetection
as it is now "DeveloperPreview" rather than "Experimental".
InjectFlags
has been removed.inject
no longer acceptsInjectFlags
.Injector.get
no longer acceptsInjectFlags
.EnvironmentInjector.get
no longer acceptsInjectFlags
.TestBed.get
no longer acceptsInjectFlags
.TestBed.inject
no longer acceptsInjectFlags
.TestBed.get
has been removed. UseTestBed.inject
instead.afterRender was renamed to afterEveryRender.
Before upgrading to Angular v20, ensure the Node.js version is at least 20.11.1.
For the full list of supported versions, visit: https://angular.dev/reference/versions
PendingTasks.run
no longer returns the result of theasync function. If this behavior is desired, it can be re-implemented
manually with the
PendingTasks.add
. Be aware, however, that promise rejectionswill need to be handled or they can cause the node process to shut down
when using SSR.
Uncaught errors in listeners which were previously only reported to
ErrorHandler
are now also reported to Angular's internal errorhandling machinery. For tests, this means that the error will be
rethrown by default rather than only logging the error. Developers
should fix these errors, catch them in the test if the test is
intentionally covering an error case, or use
rethrowApplicationErrors: false
inconfigureTestingModule
as a last resort.The
any
overload has been removed frominjector.get
. It now only supportsProviderToken<T>
and (deprecatedsince v4)
string
.Animations are guaranteed to be flushed when Angular
runs automatic change detection or manual calls to
ApplicationRef.tick
.Prior to this change, animations would not be flushed in some situations
if change detection did not run on any views attached to the
application. This change can affect tests which may rely on the old
behavior, often by making assertions on DOM elements that should have
been removed but weren't because DOM removal is delayed until animations
are flushed.
ApplicationRef.tick
will no longer catch and reporterrors to the appplication
ErrorHandler
. Errors will instead be thrown out ofthe method and will allow callers to determine how to handle these
errors, such as aborting follow-up work or reporting the error and
continuing.
This commit deprecates
ng-reflect-*
attributes and updates the runtime to stop producing them by default. Please refactor application and test code to avoid relying onng-reflect-*
attributes.To enable a more seamless upgrade to v20, we've added the
provideNgReflectAttributes()
function (can be imported from the@angular/core
package), which enables the mode in which Angular would be producing those attribites (in dev mode only). You can add theprovideNgReflectAttributes()
function to the list of providers within the bootstrap call.router
RedirectFn
can now returnObservable
orPromise
. Any code that directly calls functions returning this typemay need to be adjusted to account for this.
required writable arrays have now been updated to accept readonly
arrays when no mutations are done.
Route
no longer includeany
inthe type union. The union includes functions for the functional guards
as well as a type matching
Injector.get
:ProviderToken<T>|string
.Note that string is still deprecated on both the route guards and
Injector.get
.Deprecations
core
ngIf
/ngFor
/ngSwitch
are deprecated. Use the control flow blocks instead (@for
/@if
/@switch
).platform-browser
@angular/platform-browser-dynamic
platform-server
@angular/platform-server/testing
Use e2e tests to verify SSR behavior instead.
common
updateLatestValue
if view is destroyed before promise resolves (#58041)NgOptimizedImage
exceeds the preload limit (#60879)compiler
@for
blocks (#60495)in
keyword in Binary expression (#58432)compiler-cli
core
Injector.destroy
onInjector
created withInjector.create
(#60054)toObservable
as stable (#60449)provideExperimentalCheckNoChangesForDebug
toprovideCheckNoChangesConfig
(#60906)PendingTasks.run
(#60044)withEventReplay()
is invoked (#61077)@Attribute
as optional (#60916)zone.js
as an optional peer dependency (#61616)hasPendingTasks
observers (#59723)forceRoot
flag for effects (#60535)rejectErrors
option encourages uncaught exceptions (#60397)CDR.detectChanges
(#60056)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.