22.0.0
Breaking Changes📦 nxView on GitHub →
⚠ 16 breaking✨ 22 features🐛 20 fixes⚡ 1 deprecations🔧 19 symbols
Summary
Nx 22.0.0 introduces significant breaking changes by removing deprecated features like CreateNodes v1 types and legacy release versioning, while adding new features such as pnpm catalog support and an initial .NET plugin. Many configuration defaults related to bundling and releasing have also been updated.
⚠️ Breaking Changes
- The default value for `useLegacyTypescriptPlugin` in bundling has been changed to `false`. Users relying on legacy TypeScript plugin behavior must explicitly set `useLegacyTypescriptPlugin: true` in their configuration.
- The `NX_DISABLE_DB` environment variable has been removed. Configuration for the Nx computation cache database should now be managed through other means (e.g., configuration files or other environment variables).
- CreateNodes v1 types have been removed for Nx 22. Consumers using these v1 types must migrate to the current version of CreateNodes types.
- The experimental and deprecated inlining feature has been removed from the `tsc` and `swc` executors. Users relying on this feature must update their build configurations.
- The deprecated `decorate-cli` script has been removed. Users relying on this script should find alternative methods for customizing CLI behavior.
- Default sorting of `tsconfig.json` paths has been disabled. If path sorting was relied upon, explicit configuration might be needed.
- Migrations prior to v20 have been removed. Users upgrading from versions older than v20 must run intermediate migrations first.
- Support for non-isolated webpack config in `componentTestingPreset` in the React plugin has been removed. Ensure your component testing setup uses isolated webpack configurations.
- The experimental application generator in the rspack plugin has been removed in favor of framework-specific options. Use the appropriate framework generators instead.
- Deprecated options `deleteOutputPath` and `sassImplementation` have been removed from the rspack executor configuration.
- Deprecated options `deleteOutputPath` and `sassImplementation` have been removed from the webpack executor configuration.
- The default behavior for release configuration regarding conventional commits has changed to match Nx affected behavior. This might affect how release types are determined.
- Legacy versioning configuration has been removed from the release system.
- Default settings for release configuration have changed: `fixedReleaseGroupTagPattern` defaults are switched, and `preserveMatchingDependencyRanges` is now `true` by default. Review your release configuration if you relied on previous defaults.
- The release system now uses graph-aware filtering by default, and `updateDependents` defaults to `"always"`. This changes how dependents are updated during releases.
- Release configuration properties prefixed with `releaseTag*` (e.g., `releaseTagPattern`) have been refactored into a nested `releaseTag` object. Update configuration paths accordingly.
Migration Steps
- If you were using the deprecated inlining feature in `tsc` or `swc` executors, update your build configurations.
- If you were relying on the `NX_DISABLE_DB` environment variable, update your configuration method.
- If you were using CreateNodes v1 types, migrate to the current version of CreateNodes types.
- If you relied on default path sorting in `tsconfig.json`, ensure any necessary ordering is explicitly configured.
- If upgrading from Nx < v20, ensure you run intermediate migrations before applying v22 changes.
- Ensure your React component testing setup uses isolated webpack configurations, as non-isolated configs are no longer supported.
- Review your release configuration settings, especially around tag patterns and dependency range preservation, due to default changes.
- If you were using deprecated release configuration properties like `releaseTagPattern`, refactor them to use the new `releaseTag` object structure.
✨ New Features
- Default `useLegacyTypescriptPlugin` in bundling is now `false` for v22.
- Added `excludeFromExternal` option to the esbuild executor.
- Nx init now prompts for AI agent files.
- Added `--check=all` flag to `configure-ai-agents`.
- Exposed `registerProjectGraphRecomputationListener` from the daemon client.
- Added support for pnpm catalogs.
- Enhanced spinner handling and added a spinner to inferred conversion.
- devkit compatibility bumped to support Nx 21 - 23.
- Initial draft of the .NET plugin introduced.
- Maven plugin introduced.
- Module Federation now supports TS Solution and Package Manager workspaces paradigms.
- Ensured dependencies are added to project's package.json in the Nest plugin.
- Updated descriptions for `nx login` and `nx logout` in nx-cloud.
- Added v22 to the version picker in nx-dev.
- Added `watch-deps` and `build-deps` targets to the storybook plugin.
- Added buildable libs support for Vitest in the Vue plugin.
- Migrated `@vitejs/plugin-vue` to version 6.0.1.
- Added `releaseTagPatternPreferDockerVersion` option to specify the version used for git tags during release.
- Release system allows setting `changelog.renderer` directly to an implementation.
- New `replaceExistingContents` CLI and API option for changelog generation.
- Release system allows ignoring `nx.json` release configuration when using `ReleaseClient`.
- Release system allows conventional commit style aliases in version plan release types.
🐛 Bug Fixes
- Improved message for unsupported typescript project references in Angular plugin.
- Ensured `ngpackagr` tsconfig options are set correctly based on version in Angular plugin.
- Angular-rspack executor no longer parses JSON with babel.
- Angular-rspack executor ensures root `node_modules` is included when resolving packages.
- Angular-rspack executor now bubbles errors correctly.
- Bundling executor now respects tsconfig options with `rollup-typescript-plugin`.
- Bundling executor fixes `postcss-cli-resources` to handle relative deploy URLs.
- Core fixed provenance error when using custom registry information.
- Core optimized task hashing using BFS and added performance logging.
- Core tweaked `configure-ai-agents` prompt.
- Core ensures Nx is published with the correct dependency version for native packages.
- Core upgraded axios to 1.12.0 to address CVE-2025-58754.
- Core repaired repo root on `setupAiAgents` in `nx init`.
- Core removed requirement to be in a package manager workspace.
- Core removed duplicated "Running" string from TUI title.
- Core displays bottom corner indicator of TUI in progress section correctly.
- Core temporarily disabled TUI for `run-one`.
- Core ensures `--help` works properly with infix notation.
- Core improved DB connection initialization and error messages.
- Core prioritized in-progress tasks section visibility in TUI.
🔧 Affected Symbols
esbuild executornx initconfigure-ai-agentsCreateNodes v1 typestsc executorswc executordecorate-clitsconfig.json pathscomponentTestingPresetrspack application generatorrspack executorwebpack executorrelease configurationnx loginnx logoutstorybook plugin targetsVitest@vitejs/plugin-vueReleaseClient⚡ Deprecations
- The `simpleName` option in library generators has been removed (it was deprecated previously).