github nrwl/nx 22.0.0

latest release: 22.0.1
23 hours ago

22.0.0 (2025-10-22)

🚀 Features

  • ⚠️ bundling: change default useLegacyTypescriptPlugin to false for v22 (#32754)
  • bundling: add excludeFromExternal option to esbuild executor (#32980)
  • core: prompt for ai agent files on nx init (#32889)
  • ⚠️ core: remove NX_DISABLE_DB environment variable (#32887)
  • ⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)
  • core: add --check=all flag to configure-ai-agents (#32968)
  • core: expose registerProjectGraphRecomputationListener from daemon client (#33005)
  • core: add support for pnpm catalogs (#32978, #30035, #29772)
  • core: enhance spinner handling and add spinner to inferred conversion (#33031)
  • devkit: bump compatibility to Nx 21 - 23 (6b86c33c30)
  • dotnet: add initial draft of .NET plugin (#32869)
  • ⚠️ js: remove the experimental and deprecated inlining feature from the tsc and swc executors (#32783)
  • maven: introduce maven plugin (#32947)
  • ⚠️ misc: remove deprecated decorate-cli script and stop sorting tsconfig paths by default (#32781)
  • misc: remove migrations prior to v20 (#32904)
  • module-federation: support TS Soln and Package Manager workspaces paradigms (#33056)
  • nest: ensure dependencies are added to project's package.json #32548 (#32986, #32548)
  • nx-cloud: update description on nx login and logout (#31344)
  • nx-dev: add v22 to version picker (#33110)
  • react: remove support for non-isolated webpack config in ponentTestingPreset (#32787)
  • react: keep deprecated @nx/react/bundle-rollup module since there is not a replacement when using @nx/rollup:rollup executor (#32821)
  • ⚠️ release: match nx affected behavior to determine relevant conventional commits (#32915)
  • ⚠️ release: remove deprecated legacy versioning (#32888)
  • ⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)
  • ⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)
  • release: add releaseTagPatternPreferDockerVersion to specify version to use for git tag #32900 (#32972, #32900)
  • ⚠️ release: release graph aware filtering, updateDependents can now be "always" (#32971)
  • ⚠️ release: set updateDependents to always by default (#33029)
  • ⚠️ release: refactor releaseTag* properties to a releaseTag object (#33020)
  • release: allow changelog.renderer to be set to an implementation directly (#33095)
  • release: new replaceExistingContents CLI and API option for changelog (#33096)
  • release: allow ignoring nx.json release config with ReleaseClient (#33099)
  • release: allow conventional commit style aliases in version plan release types (#33167)
  • ⚠️ rspack: remove application generator in favour of framework-specific options (#32755)
  • ⚠️ rspack: remove deprecated deleteOutputPath and sassImplementation options (#32756)
  • storybook: add watch-deps and build-deps targets (deb10f2818)
  • vite: add buildable libs support for vitest (#32973)
  • vue: migrate @vitejs/plugin-vue to 6.0.1 (#33097)
  • ⚠️ webpack: remove deprecated deleteOutputPath and sassImplementation options (#32828)

🩹 Fixes

  • angular: improve message for unsupported typescript project references (#33148)
  • angular: ensure ngpackagr tsconfig options set correctly based on version #33081 (#33150, #33081)
  • angular-rspack: do not parse json with babel #32690 (#32966, #32690)
  • angular-rspack: ensure root node_modules included when resolving packages (#33144, #33026)
  • angular-rspack: bubble errors correctly (#33183)
  • bundling: ensure tsconfig options are respected with rollup-typescript-plugin (#32816)
  • bundling: postcss-cli-resources should handle relative deploy url #32714 (#32762, #32714)
  • ⚠️ core: remove deprecated simpleName option from library generators (#32716)
  • core: improve provenance error with custom registry information (#32903)
  • core: optimize task hashing with BFS and performance logging (#32911)
  • core: tweak configure-ai-agents prompt (#32914)
  • core: ensure nx is published with the correct dependency version for the native packages (#32928, #32898)
  • core: upgrade axios to 1.12.0 to address CVE-2025-58754 (#32712)
  • core: repair repo root on setupAiAgents in nx init (#32984)
  • core: remove requirement to be in a package manager workspace (#32992)
  • core: remove duplicated "Running" string from tui title (#32991)
  • core: display bottom corner indicator of tui in progress section correctly (#32985)
  • core: temporarily disable tui for run-one (#33048)
  • core: ensure --help works properly with infix notation (#32662)
  • core: improve db connection initialization and error messages (#33054, #28640, #30856, #32894)
  • core: prioritize in-progress tasks section visibility in tui (#33053)
  • core: enhance tui summary output to fix misc issues (#33057)
  • core: format catalog definition files when appropriate in nx migrate (#33105)
  • core: allow prerelease versions of nx to be used with devkit (#33123)
  • core: restore migrations used by nx repair (#33124)
  • core: avoid changing existing project name if a project.json file is added to a project (#33114)
  • core: do not remove wal files manually for existing databases (#33143)
  • core: do not print flaky tasks guidance when nx cloud is already enabled (#33149)
  • core: add wrappers for start and stop agent nx-cloud commands (#33140)
  • core: revert changes to the db connection initialization (#33156)
  • core: store reason when marking daemon as disabled (#33172)
  • dotnet: fixup various issues + missing functionality (#33132)
  • graph: prevent content from overflowing in the PDV component (#33120)
  • js: temporarily hash all external dependencies for tasks inferred by the @nx/js/typescript plugin (#32912)
  • js: ensure node execute completes before exit (#32629, #32385, #32356)
  • linter: install correct deps in eslint convert to flat config generator (#33078)
  • ⚠️ misc: don't set legacy-peer-deps by default (#33014, #22066, #29537)
  • module-federation: ensure angular rspack module federation supports live reload (#33137)
  • nextjs: remove whitespace for newly generated server component (1d687c4994)
  • nextjs: update entrypoints for buildable library with vite to include server entry #31457 (#32977, #31457)
  • nx-cloud: update broken documentation links to AI features (0149fac877)
  • nx-dev: improve default zoom level of graph nodes in docs (#32910)
  • nx-dev: provide message to check previous docs w/ empty migrations (#32919)
  • nx-dev: watch for theme changes for project/task graph components (#32885)
  • nx-dev: update credit pricing link to new docs page (#32899)
  • nx-dev: update nextjs internal-link-checker to include astro urls (#33045)
  • nx-dev: respect NX_DEV_URL in sitemap checker (#33058)
  • nx-dev: handle null github data (#33061)
  • nx-dev: add docker to build-tools tech section (#33164)
  • react: dynamic module federation should not initialize remoteUrlDefinitions to empty object (#33059, #27927, #33055, #27793, #27842)
  • release: ensure schema for release.groups is correct (#33007)
  • release: skip filtered out groups when processing (#33044)
  • ⚠️ release: ensure multilines in breaking changes are rendered by changelog renderer (#33070, #33014)
  • release: replace local dependency protocols of unchanged dependencies #30995 (#33151, #30995)
  • ⚠️ release: better respect version plan file contents for changelog entries (#33166)
  • release: breaking change contents extraction (#33184)
  • remix: @nx/remix/package.json export typo fixed #32810 (#32940, #32810)
  • remix: ensure supported version of vite is used (#33089)
  • repo: fix pr releases to not depend on a broken range (#32993)
  • testing: show warning instead of error when no blob outputs found during merge (#33022)
  • vite: ensure tsconfig file is resolved from workspaceRoot #31987 (#32990, #31987)
  • vite: enable build watch mode by default for preview (#31604, #31623)
  • vite: add logic to prevent overwriting generated package.json (#30705, #30312)

⚠️ Breaking Changes

  • release: config.conventionalCommitsConfig for DefaultChangelogRenderer is no longer nullable. (#33166)

  • misc: The --legacy-peer-deps behavior is no longer forced. (#33014, #22066, #29537)

    If you need it, configure your package manager to enforce it.

  • release: This is a breaking change in the preferred configuration structure. Existing configurations will continue to work through the migration period, but users should update to the new nested format. (#33020)

  • release: Users who relied on the previous 'auto' behavior can (#33029)

    explicitly set updateDependents: 'auto' in their nx.json:

      {
        "release": {
          "version": {
            "updateDependents": "auto
  • release: The signature of init() on VersionActions has (#32971)

    changed, it no longer accepts a second argument. Validation of the
    manifest files, if any, now takes place via a separate method
    (validate()) call after construction of the new ReleaseGraph. For
    the most part, users do not need custom VersionActions so only a small
    percentage of consumers should be impacted.
    Fixes #31273

  • ⚠️ core: remove CreateNodes v1 types for Nx 22 (#32951)

  • ⚠️ release: set preserveMatchingDependencyRanges to true by default (#32983)

  • ⚠️ release: switch defaults for fixed release group tag pattern, preserve matching dependency ranges and strictPreid (#32878)

  • ⚠️ release: remove deprecated legacy versioning (#32888)

  • release: More files are now being used to determine relevant (#32915)

    commits, meaning there is higher chance for projects to receive version
    bumps

  • misc: The long-deprecated decorate-cli script has been (#32781)

    removed.
    BREAKING CHANGE: The nx format command and generators no longer
    default to sorting TypeScript path mappings. To keep the previous
    behavior, pass the --sort-root-tsconfig-paths flag to the command or
    set NX_FORMAT_SORT_TSCONFIG_PATHS=true.

  • ⚠️ core: remove NX_DISABLE_DB environment variable (#32887)

  • js: The experimental inlining feature in the @nx/js:tsc (#32783)

    and @nx/js:swc executors was removed. A migration will remove the
    related options (external and externalBuildTargets). Still, if you
    use or rely on the feature, you need to make your dependencies buildable
    or use a different build tool with bundling capabilities.

  • ⚠️ webpack: remove deprecated deleteOutputPath and sassImplementation options (#32828)

  • ⚠️ rspack: remove deprecated deleteOutputPath and sassImplementation options (#32756)

  • ⚠️ rspack: remove application generator in favour of framework-specific options (#32755)

  • ⚠️ bundling: change default useLegacyTypescriptPlugin to false for v22 (#32754)

  • core: simpleName option is no longer supported in library generators (#32716)

❤️ Thank You

Don't miss a new nx release

NewReleases is sending notifications on new releases.