22.0.0-beta.1
Breaking Changes📦 nxView on GitHub →
⚠ 7 breaking✨ 26 features🐛 29 fixes🔧 21 symbols
Summary
Nx 22.0.0-beta.1 introduces major features like pnpm catalog support, new .NET and Maven plugins, and significant refactoring in the release system, alongside several breaking changes removing legacy APIs and updating defaults.
⚠️ Breaking Changes
- The `CreateNodes` v1 types for Nx 22 have been removed.
- The deprecated `decorate-cli` script has been removed, and Nx no longer sorts tsconfig paths by default.
- Legacy versioning in the release process has been removed.
- Defaults for fixed release group tag pattern, preserving matching dependency ranges, and strictPreid have been switched.
- The default value for `preserveMatchingDependencyRanges` is now set to true.
- Release configuration properties (`releaseTag*`) have been refactored into a single `releaseTag` object.
- The default value for `updateDependents` is now set to "always".
Migration Steps
- If you were using CreateNodes v1 types, update your code to use the new types introduced in Nx 22.
- Remove usage of the deprecated `decorate-cli` script.
- Review your release configuration in `nx.json` as legacy versioning properties have been removed and defaults have changed (e.g., `preserveMatchingDependencyRanges` is now true by default, and `updateDependents` defaults to "always").
- If you relied on the previous structure of release tag configuration, update your configuration to use the new `releaseTag` object structure.
✨ New Features
- Added `excludeFromExternal` option to the esbuild executor for bundling.
- 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.
- Updated the underlying Rust implementation.
- Docker plugin now supports inferring additional arguments for targets with interpolation support.
- Added initial draft of the .NET plugin.
- Gradle plugin now supports specifying a custom installation path.
- Introduced the Maven plugin.
- Removed migrations prior to v20.
- Module Federation now supports TS Solution and Package Manager workspaces paradigms.
- Nest plugin ensures dependencies are added to the project's package.json.
- Updated descriptions for `nx login` and `nx logout`.
- Added v22 to the version picker in `nx-dev`.
- Release process now matches `nx affected` behavior to determine relevant conventional commits.
- Added `releaseTagPatternPreferDockerVersion` option to specify the version to use for git tags.
- Release process now supports graph-aware filtering, and `updateDependents` can be set to "always".
- The release process allows setting `changelog.renderer` directly to an implementation.
- New `replaceExistingContents` CLI and API option for changelog generation.
- The ReleaseClient can now ignore the `nx.json` release configuration.
- Allows conventional commit style aliases in version plan release types.
- Support for `{versionActionsVersion}` in the docker version scheme.
- Storybook plugin added `watch-deps` and `build-deps` targets.
- Vite plugin added support for buildable libs with Vitest.
- Vue plugin migrated `@vitejs/plugin-vue` to version 6.0.1.
🐛 Bug Fixes
- Improved message for unsupported typescript project references in Angular plugin.
- Ensured ngpackagr tsconfig options are set correctly based on version.
- Angular Rspack plugin now avoids parsing JSON with babel.
- Angular Rspack plugin ensures root `node_modules` is included when resolving packages.
- Angular Rspack plugin now bubbles errors correctly.
- Bundling: postcss-cli-resources now handles relative deploy url correctly.
- Core: Improved provenance error reporting with custom registry information.
- Core: Optimized task hashing using BFS and added performance logging.
- Core: Tweaked the `configure-ai-agents` prompt.
- Core: Ensured 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 repository root on `setupAiAgents` during `nx init`.
- Core: Removed the requirement to be in a package manager workspace.
- Core: Removed duplicated "Running" string from TUI title.
- Core: Correctly displayed the bottom corner indicator of the TUI in the progress section.
- Core: Temporarily disabled TUI for `run-one`.
- Core: Ensured `--help` works properly with infix notation.
- Core: Improved database connection initialization and error messages.
- Core: Prioritized in-progress tasks section visibility in TUI.
- Core: Enhanced TUI summary output to fix miscellaneous issues.
- Core: Formatted catalog definition files when appropriate during `nx migrate`.
- Core: Allowed prerelease versions of nx to be used with devkit.
- Core: Restored migrations used by `nx repair`.
- Core: Avoided changing existing project names if a `project.json` file is added to a project.
- Core: Does not manually remove wal files for existing databases.
- Core: Does not print flaky tasks guidance when nx cloud is already enabled.
- Core: Added wrappers for start and stop agent `nx-cloud` commands.
- Core: Reverted changes to the db connection initialization.
- Core: Stored the reason when marking the daemon as disabled.
🔧 Affected Symbols
CreateNodes v1 typesdecorate-cli scripttsconfig paths sortingconfigure-ai-agentsregisterProjectGraphRecomputationListenernx loginnx logoutngpackagr tsconfig optionspostcss-cli-resourcesaxiossetupAiAgentsnx migrateReleaseClientnx.json release configchangelog.rendererreleaseTag* propertiesreleaseTagupdateDependentspreserveMatchingDependencyRangesnx-cloud commands (start/stop agent)db connection initialization