yarn nx 22.0.0-beta.1

latest releases: 23.0.0-canary.20260501-fde01fa, 23.0.0-beta.4, 23.0.0-beta.3...
7 months ago

22.0.0-beta.1 (2025-10-27)

🚀 Features

  • bundling: add excludeFromExternal option to esbuild executor (#32980)
  • ⚠️ 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)
  • core: update rust (#33220)
  • docker: support inferring additional args for targets with interpolation support (#32892)
  • dotnet: add initial draft of .NET plugin (#32869)
  • gradle: add custom installation path to options (#33187)
  • 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)
  • ⚠️ 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)
  • release: support {versionActionsVersion} in docker version scheme (#33178)
  • 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)

🩹 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: postcss-cli-resources should handle relative deploy url #32714 (#32762, #32714)
  • 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)
  • core: adding output error reason (#33159)
  • core: continue execution when cloud client is unavailable (#33214)
  • core: prevent error message containing [object Object] for invalid {workspaceRoot} placement (#33203)
  • core: fix swapped arguments when resolving catalog references from the filesystem (#33237)
  • core: should find dockerfiles to suggest installing docker plugin (#33234)
  • core: stream without prefixes showing tui (#33194, #32535)
  • core: ensure daemon writes project graph cache to disk consistently (#33217)
  • core: add accept header to http remote cache get (#33093, #33092)
  • core: prevent undefined importer crash in pnpm lockfile parsing (#33223)
  • core: split lockfile cache and other performance improvements (#33256)
  • docker: handle undefined options when creating graph (#33235)
  • docker: handle dockerfile at project root tag (#33236)
  • 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)
  • maven: add support for unbound goals in plugin targets (#33191)
  • maven: use File.isAbsolute for cross-platform path detection (#33195)
  • ⚠️ misc: don't set legacy-peer-deps by default (#33014, #22066, #29537)
  • misc: add explanatory footer to ai agents prompts (#33182)
  • misc: handle null exit codes from crashed child processes (#33163, #29204)
  • 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)
  • node: migrate to koa 3.0.3 (#33208)
  • 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)
  • nx-dev: update docs code blocks usage (#32998)
  • nx-dev: add copy-docs back as a dep of serve (#33215)
  • 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)
  • vite: nxViteTsPaths supports local path aliases (#33241, #33231)

⚠️ Breaking Changes

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

  • release: The --legacy-peer-deps behavior is no longer forced. (#33070, #33014)

    If you need it, configure your package manager to enforce it.
    Would only render the first line, and without the PR reference.

    Expected Behavior

    The changelog renderer should:

    1. Capture and render all lines of a breaking change explanation, not
      just the first
      line
    2. Include PR/commit references in the breaking change section (e.g.,
      ([#33014](url)))
    3. Properly indent multi-line and multi-paragraph breaking changes for
      better
      readability
    4. Maintain consistent formatting between the feature/fix entry and its
      corresponding
      breaking change entry
      Example of correct output:
    ### ⚠️  Breaking Changes
    - **misc:** The `--legacy-peer-deps` behavior is no longer forced.
    ([#33014](url))
      If you need it, configure your package manager to enforce it.
  • 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.

❤️ Thank You

Don't miss a new nx release

NewReleases is sending notifications on new releases.