Migrating to Nx 23.0.0
Version 23.0.0 introduces 8 breaking changes. This guide details how to update your code.
Released: 6/16/2026
⚠️ Check Your Code
If you use any of these symbols, you need to read this guide:
@nx/angular/module-federationmove generator (@nx/angular)ngrx generator (@nx/angular)convert-to-with-mf generator (@nx/angular)SCAM generators (@nx/angular)rollup buildLibsFromSourceSVGR option (bundling)Vite 7 -> 8 migrationstarget config merging ('...')target uses task graphdependsOn normalizationnx migrate --modenx migrate --multi-major-modemigration entries ('prompt' field)nx watch --includeDependentProjectsnx watch --includeDependenciestargetDefaults (array-shape)native Node.js TypeScript strippingnx migrate --includeCreateNodes V2 typesaddProjectConfiguration (standalone parameter)@nx/detox build executor@nx/detox test executor@nx/devkit/src/...nx migrate --run-migrations (agentic mode)nx.json (migrate configuration section)migrations.json (JSON schema)createNodesV2createNodesnx-plugin-checks (prompt-only entries)ESLint v8 support (@nx/linter)Tailwind CSS setup-tailwind generatorsstylesheet options (generators)component generators (js option)webpack plugin re-exportsnx migrate --trustThirdPartyPresetreleaseTag* flat properties@nx/cypress:cypress executorCypress 15.14Jest 30 snapshot guide linkskipSetupFile (jest option)setupFile (jest option)Vitest support (@nx/vite)nxViteTsPaths helpernxCopyAssetsPlugin helperwebpack/rspack config compose helpersBreaking Changes
●Issue #1
The legacy typescript plugin for bundling was dropped, aligning the rollup buildLibsFromSource default.
✓Solution
Review rollup configurations related to library building if custom plugins were used.
●Issue #2
The SVGR option in bundling was removed. Users relying on this must migrate to the new mechanism.
✓Solution
Use the provided migration to update SVGR configurations.
●Issue #3
Native Node.js TypeScript stripping is now enabled by default.
✓Solution
If this causes unexpected behavior, investigate configuration related to TypeScript processing.
●Issue #4
The array-shape support for targetDefaults with projects and source was reverted pending redesign.
✓Solution
Revert any usage of array-shape configurations in targetDefaults until the redesign is complete.
●Issue #5
Node 20 support was dropped.
✓Solution
Upgrade your Node.js environment to a supported version (e.g., Node 22+).
●Issue #6
The js option was removed from component generators.
✓Solution
Use TypeScript for component generation or adjust generator calls.
●Issue #7
Deprecated webpack/rspack config compose helpers were removed.
✓Solution
Update custom webpack/rspack configurations to use the new composition methods or alternatives.
●Issue #8
Vitest support within the core @nx/vite plugin was removed in favor of the dedicated @nx/vitest plugin.
✓Solution
Migrate Vitest configurations and usage to the new @nx/vitest plugin.
Migration Steps
- 1If you were using the deprecated @nx/angular/module-federation entry point, update your imports.
- 2If you were using the deprecated @nx/angular move generator, use the replacement.
- 3If you were using the deprecated @nx/angular ngrx generator, use the replacement.
- 4If you were using the SVGR option in bundling, use the provided migration to update configurations.
- 5Rename usages of `nx watch --includeDependentProjects` to `nx watch --includeDependencies`.
- 6Migrate deep imports from `@nx/devkit/src/...` to canonical locations.
- 7If using ESLint v8, plan migration away from it as support is deprecated.
- 8If using deprecated executors, migrate to their inferred-plugin replacements.
- 9Replace usage of the `withNx` function in Next.js projects.
- 10Remove deprecated `skipSetupFile` and `setupFile` options from Jest configurations.
- 11Migrate Vitest configurations from @nx/vite to the dedicated @nx/vitest plugin.
- 12Update webpack/rspack configurations to use the new config composition helpers instead of the deprecated ones.
- 13If you relied on array-shape targetDefaults, reconfigure them to the new structure after the redesign.
- 14Run `nx migrate` to apply agentic mode updates and migration for createNodesV2 rename.
Release Summary
Version 23.0.0 introduces significant cleanup by removing long-deprecated features across Angular, Bundling, and Misc areas, while heavily enhancing the `nx migrate` experience with agentic mode and better configuration support. Node 20 support has been dropped.
Need More Details?
View the full release notes and all changes for Nx 23.0.0.
View Full Changelog