← All recipes
Moderne licensed

Remove unneeded @angular/animations providers

Recipe IDorg.openrewrite.node.migrate.angular-animations.remove-angular-animations-providersArtifact@openrewrite/recipes-nodejs

Angular 20.2 deprecated @angular/animations in favor of native CSS animations with animate.enter/animate.leave, which need no provider. Where an application no longer uses the legacy animation engine, this removes provideAnimations(), provideAnimationsAsync() and BrowserAnimationsModule from providers, imports and importProvidersFrom, removes NoopAnimationsModule/provideNoopAnimations() from tests, and drops @angular/animations from package.json. A package is left alone while anything still uses the legacy engine: an import of @angular/animations (a trigger() in animations: metadata, AnimationBuilder), a [@trigger], (@trigger.done) or @HostBinding('@trigger') binding, Angular Material before 19.2, or a library that depends on @angular/animations or is known to ship legacy triggers. Noop providers outside tests are kept, since removing them would enable animations the application turned off. Lock files are not regenerated; run the package manager's install afterwards.

Single recipeangularanimationsProprietary

Usage

This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.

mod run . --recipe org.openrewrite.node.migrate.angular-animations.remove-angular-animations-providers

If the recipe isn’t available locally, install it with:

mod config recipes npm install @openrewrite/recipes-nodejs