npm nx 21.5.1

latest release: 21.6.0-canary.20250908-95e7b49
15 hours ago

21.5.1 (2025-09-08)

🚀 Features

  • angular: support angular v20.2 (#32351)
  • angular-rspack: do not rely on postinstall >20.2 (#32613)
  • core: add incompatibleWith field for packageJsonUpdates (#32464)
  • core: auto-retry lock files changed daemon msgs (#32489)
  • core: add NX_PROJECT_ROOT environment variable to runtime cache inputs (#31428, #20949)
  • graph: task graph support multiple targets (#32418)
  • graph: unwrap RankDirPanel from experimental (#32490, #32482, #32481)
  • js: add includeIgnoredAssetFiles option and per-asset includeIgnoredFiles (#31813)
  • js: detect duplicate project references in @nx/js:typescript-sync (#32443)
  • module-federation: align dynamic federation with latest from module federation and rspack (#32509, #32542)
  • nx: use platform certificate trust store (#31999)
  • nx-dev: link ukg article on homepage (c02d448b9f)
  • nx-dev: configure rewrite to astro-docs when NEXT_PUBLIC_ASTRO_URL is set (#32424)
  • nx-dev: nx.dev homepage feature illustrations and CTA (#32298)
  • nx-dev: update homepage subtagline (2af5446fba)
  • repo: add GitHub Actions workflow to validate PR titles (#32458)
  • rspack: add support for converting webpack plugin configs #30292 (#32382, #30292)
  • rspack: support passing templateParameters to HtmlRspackPlugin (#32553)
  • tools: add repository update system for automated Nx migrations (#32124)
  • vite: support vite 7 (#32422)
  • webpack: migrate from deprecated url.parse() to WHATWG URL API (f768886ae7)

🩹 Fixes

  • angular: set the tsConfig option when possible to aid with angular migrations (#32355, #32138)
  • angular: do not update project configuration when not changes were made in migration (#32448)
  • angular-rspack: do not error on server budget violation (#32445)
  • core: improve Cursor editor detection and extension installation (#32374)
  • core: ensure deterministic dummy task generation in task graphs (#32414)
  • core: handle unsupported platforms in Cursor IDE install command (#32419)
  • core: only prompt for NX Console installation in TTY environments (#32425)
  • core: enhance validation for continuous task dependencies (#31786)
  • core: retry current message when receiving NX_VERSION_CHANGED from daemon (#32417, #29446)
  • core: use black for all fg elements when in light theme (#32415)
  • core: fail fast when running commands in parallel (#32386, #28477)
  • core: handle no daemon when stopping (#32455)
  • core: create pnpm peer deps settings in the appropriate location when creating workspace (#32470)
  • core: repair nx mcp in pnpm/yarn (#32452)
  • core: allow additional properties in ProjectMetadata type (#32483)
  • core: normalize root project root when merging project config results (#32517)
  • core: detect devcontainer environment and skip Nx Console installation prompt if it exists (#32571)
  • core: use more reasonable scroll speed on trackpads (#32603)
  • core: exclude non-cacheable tasks from flaky detection (#32435)
  • core: reduce CPU usage by adding 20ms interval to daemon process check (#32618)
  • devkit: restore peer dep range to 2 majors (#32406, #31801)
  • devkit: include UPDATE changes in findCreatedProjectFiles for generator callbacks (#31429, #29852)
  • devkit: remove nx as direct dependency (#32614)
  • expo: export output should be within project directory (#32477)
  • gradle: use AST parsing to migrate updates to version catalogs (#32463)
  • gradle: allow test target name to be configuration from nx.json (#32416)
  • gradle: allow test target name to be configured from nx.json" (#32637, #32416)
  • graph: some misc fixes to the graph (#32401)
  • graph: nxArgs.projects can be an empty array (#32479)
  • graph: project details navigating for new taskGraph and tasks with default configuration on UI (#32510)
  • graph: repair theme detection for nx console components (#32607)
  • js: esm loader should handle absolute paths on windows #32376 (#32383, #32376)
  • js: improve @nx/js/typescript plugin check for buildable libraries (#32405, #32116, #32290)
  • js: do not infer the project type in the @nx/js/typescript plugin (#32421)
  • js: use a unique typescript custom condition name for the workspace (#32429, #31332)
  • js: store stale references correctly in typescript-sync generator (#32596)
  • misc: update @types/node to v20.19.9 to support fetch API (#32092, #31637)
  • misc: respect string values in alwaysAddToPackageJson migration flag (#32433, #30586)
  • misc: check for packages existence to detect pnpm workspaces setup (#32474)
  • module-federation: do not rely on virtualRuntimeEntry #31831 (#32387, #31831, #32404)
  • nx-cloud: read package.json correctly for workspace name when creating new cloud workspace (#32504)
  • nx-cloud: forward --help to nx-cloud aliases (#32627)
  • nx-dev: update navbar CTA buttons and updates event tracking (#32392)
  • nx-dev: re-enable contact form (#32493)
  • nx-dev: task graph should not break docs (#32501)
  • nx-dev: update header logo to link to nx.dev homepage (#32502)
  • nx-dev: issue with index pages not showing content lists (#32559)
  • nx-dev: resolve multiple styling issues in Astro documentation (#32561)
  • nx-dev: add missing data in plugin migrations (#32562)
  • nx-dev: remove self-referencing redirects causing infinite loops (#32615)
  • plugin: handle directory paths correctly in executor and generator generators (#31856, #31803, #31776)
  • release: ensure versionData is accurate for all transitive dependencies (#32531)
  • rspack: expand serve-static target names for init generator (#32587)
  • testing: support NX_CACHE_PROJECT_GRAPH when reading inferred config from jest cache file (#32380)
  • testing: fall back to tsconfig.json in the jest resolver (#32083)
  • testing: log the correct installed cypress version when erroring due to using an unsupported version (#32598)
  • webpack: migrate from deprecated url.parse() to WHATWG URL API (#32399)

❤️ Thank You

Don't miss a new nx release

NewReleases is sending notifications on new releases.