PackageTrack

npm · #4152

@nx/js

23.1.2nrwl/nx

The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects.

Release timeline

1889 releases since 2023
202420252026

Releases

  1. 21.6.1-beta.09 Sept 2025pre-release
    Release notes

    21.6.1-beta.0 (2025-09-09)

    🚀 Features

    • core: replace the pagination from the tui tasks list with scrolling (#32560)
    • misc: add Cookiebot global scripts to astro-docs (#32660)
    • testing: infer task to merge reports from playwright atomized tasks (#31615)

    🩹 Fixes

    • bundling: postcss-cli-resources should handle relative urls #32582 (#32658, #32582)
    • core: ensure only supported bundlers are used for angular fallback to default (#32655)
    • core: invalidate project graph when external nodes change (#32626)
    • core: check if daemon process is actually alive before trying to kill it (#32661)
    • core: add bold styling to terminal pane title when focused (#32462)
    • core: resolve watcher infinite loops from missing parent gitignore support (#32604, #30313)
    • core: check nx packages for provenance config before running nx migrate (#32557)
    • core: handle uninstalled nx console case in autoinstall logic (#32673)
    • core: filter task duration estimation by successful tasks only (#32688)
    • release: optimize release version internals (#32534)
    • repo: update broken CI documentation link in README (#32633, #32549)
    • vite: handle config server properly for libs (#32608)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Copilot @Copilot
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • MaxKless @MaxKless
    • Miguel @mpsanchis
    • Miroslav Jonaš @meeroslav
    Open source →
  2. 21.6.0-canary.20250926-7f4a8ea26 Sept 2025pre-release

    Nothing published for this version

  3. 21.6.0-canary.20250926-6480d3d26 Sept 2025pre-release

    Nothing published for this version

  4. 21.6.0-canary.20250924-bd1b68924 Sept 2025pre-release

    Nothing published for this version

  5. 21.6.0-canary.20250923-146f57723 Sept 2025pre-release

    Nothing published for this version

  6. 21.6.0-canary.20250922-dbcafa022 Sept 2025pre-release

    Nothing published for this version

  7. 21.6.0-canary.20250917-93fcc4817 Sept 2025pre-release

    Nothing published for this version

  8. 21.6.0-canary.20250916-a42997216 Sept 2025pre-release

    Nothing published for this version

  9. 21.6.0-canary.20250915-98c47f015 Sept 2025pre-release

    Nothing published for this version

  10. 21.6.0-canary.20250912-cfc03a212 Sept 2025pre-release

    Nothing published for this version

  11. 21.6.0-canary.20250908-95e7b498 Sept 2025pre-release

    Nothing published for this version

  12. 21.5.319 Sept 2025
    Release notes

    21.5.3 (2025-09-19)

    🚀 Features

    • core: add NX_PROJECT_ROOT environment variable to runti… (#32736, #31428)
    • docker: ensure docker:build dependsOn build (#32697)
    • nx-dev: disable Algolia search on non-docs pages when Astro docs are enabled (#32789)
    • release: new option preserveMatchingDependencyRanges to not update matching version ranges (#32556)

    🩹 Fixes

    • angular: install a compatible version of jest for angular (#32744)
    • angular-rspack: show correct file sizes in build stats for i18n builds (#32758, #32277)
    • angular-rspack: ensure assets extracted from stylesheets correctly #32487 (#32759, #32487)
    • core: exit fork process and children when ipc connection closes (#32681)
    • core: improve error messages for provenance checks (#32680)
    • core: add missing view command to npm (#32729)
    • core: kill child process correctly when run-script executor process is killed and not using pseudoterminal (#32699)
    • core: do not shutdown daemon for project graph errors (#32764)
    • core: fix misc db-related issues (#32745)
    • gradle: use project configurations to determine project dependencies (#32704)
    • misc: add typescript output to the eslint ignore when needed (#32775)
    • nx-dev: correct courses page og image (#32700)
    • nx-dev: correctly link to url fragments for devkit (#32565)
    • nx-dev: implement client-side routing for documentation URLs (#32708)
    • repo: move codeql to yml based config s.t. it runs properly on forks (#32659)

    ❤️ Thank You

    • Caleb Ukle
    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • MaxKless @MaxKless
    • Philip Fulcher
    Open source →
  13. 21.5.211 Sept 2025
    Release notes

    21.5.2 (2025-09-11)

    🚀 Features

    • docker: add env var for providing docker registry (#32676)
    • misc: add Cookiebot global scripts to astro-docs (#32660)
    • rspack: respect deleteOutputPath option in rspack executor (#32609, #32015)

    🩹 Fixes

    • bundling: postcss-cli-resources should handle relative urls #32582 (#32658, #32582)
    • core: ensure only supported bundlers are used for angular fallback to default (#32655)
    • core: invalidate project graph when external nodes change (#32626)
    • core: check if daemon process is actually alive before trying to kill it (#32661)
    • core: add bold styling to terminal pane title when focused (#32462)
    • core: resolve watcher infinite loops from missing parent gitignore support (#32604, #30313)
    • core: check nx packages for provenance config before running nx migrate (#32557)
    • core: handle uninstalled nx console case in autoinstall logic (#32673)
    • core: filter task duration estimation by successful tasks only (#32688)
    • core: move git utilities to fix WASM build (#32695)
    • core: detect vscode insiders as separate editor (#32679)
    • release: optimize release version internals (#32534)
    • repo: update broken CI documentation link in README (#32633, #32549)
    • vite: handle config server properly for libs (#32608)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Copilot @Copilot
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • MaxKless @MaxKless
    • Miguel @mpsanchis
    • Miroslav Jonaš @meeroslav
    • Omer
    Open source →
  14. 21.5.18 Sept 2025
    Release notes

    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)
    • 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

    • Caleb Ukle
    • Chau Tran @nartc
    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Jonathan Gelin @jogelin
    • Juri @juristr
    • Juri Strumpflohner @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Louie Weng @lourw
    • Marc Palm @marcpalm
    • MaxKless @MaxKless
    • Miguel @mpsanchis
    • Nicholas Cunningham @ndcunningham
    • Nicole Oliver
    • Rares Matei
    • Steven Nance
    • Tomáš Čarnecký @wereHamster
    Open source →
  15. 21.5.1-beta.55 Sept 2025pre-release
    Release notes

    21.5.1-beta.5 (2025-09-05)

    🩹 Fixes

    • gradle: allow test target name to be configured from nx.json" (#32637, #32416)

    ❤️ Thank You

    • Louie Weng @lourw
    Open source →
  16. 21.5.1-beta.45 Sept 2025pre-release
    Release notes

    21.5.1-beta.4 (2025-09-05)

    🚀 Features

    • angular-rspack: do not rely on postinstall >20.2 (#32613)
    • core: add NX_PROJECT_ROOT environment variable to runtime cache inputs (#31428, #20949)

    🩹 Fixes

    • 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: remove nx as direct dependency (#32614)
    • graph: repair theme detection for nx console components (#32607)
    • nx-cloud: forward --help to nx-cloud aliases (#32627)
    • nx-dev: remove self-referencing redirects causing infinite loops (#32615)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • MaxKless @MaxKless
    • Rares Matei
    Open source →
  17. 21.5.1-beta.33 Sept 2025pre-release
    Release notes

    21.5.1-beta.3 (2025-09-03)

    🚀 Features

    🩹 Fixes

    • js: store stale references correctly in typescript-sync generator (#32596)
    • release: ensure versionData is accurate for all transitive dependencies (#32531)
    • testing: log the correct installed cypress version when erroring due to using an unsupported version (#32598)

    ❤️ Thank You

    • Juri @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Miguel @mpsanchis
    Open source →
  18. 21.5.0-canary.20250904-ec1f1a44 Sept 2025pre-release

    Nothing published for this version

  19. 21.5.0-canary.20250904-2c678a14 Sept 2025pre-release

    Nothing published for this version

  20. 21.5.0-canary.20250902-f34b5ef2 Sept 2025pre-release

    Nothing published for this version

  21. 21.5.0-canary.20250902-92bd11a2 Sept 2025pre-release

    Nothing published for this version

  22. 21.5.0-canary.20250829-23cffe629 Aug 2025pre-release

    Nothing published for this version

  23. 21.5.0-canary.20250828-e634b5828 Aug 2025pre-release

    Nothing published for this version

  24. 21.5.0-canary.20250826-af4460826 Aug 2025pre-release

    Nothing published for this version

  25. 21.5.0-canary.20250823-a93e74e23 Aug 2025pre-release

    Nothing published for this version

  26. 21.5.0-canary.20250822-2e3940222 Aug 2025pre-release

    Nothing published for this version

  27. 21.5.0-canary.20250821-4ba208521 Aug 2025pre-release

    Nothing published for this version

  28. 21.5.0-canary.20250819-2307a8d19 Aug 2025pre-release

    Nothing published for this version

  29. 21.5.0-canary.20250816-fcfb5ab16 Aug 2025pre-release

    Nothing published for this version

  30. 21.5.0-beta.22 Sept 2025pre-release
    Release notes

    21.5.0-beta.2 (2025-09-02)

    🚀 Features

    • angular: support angular v20.2 (#32351)
    • core: add incompatibleWith field for packageJsonUpdates (#32464)
    • core: auto-retry lock files changed daemon msgs (#32489)
    • graph: unwrap RankDirPanel from experimental (#32490, #32482, #32481)
    • 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-dev: nx.dev homepage feature illustrations and CTA (#32298)
    • repo: add GitHub Actions workflow to validate PR titles (#32458)
    • rspack: support passing templateParameters to HtmlRspackPlugin (#32553)
    • tools: add repository update system for automated Nx migrations (#32124)

    🩹 Fixes

    • 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)
    • 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)
    • graph: nxArgs.projects can be an empty array (#32479)
    • graph: project details navigating for new taskGraph and tasks with default configuration on UI (#32510)
    • js: use a unique typescript custom condition name for the workspace (#32429, #31332)
    • misc: check for packages existence to detect pnpm workspaces setup (#32474)
    • nx-cloud: read package.json correctly for workspace name when creating new cloud workspace (#32504)
    • 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)
    • rspack: expand serve-static target names for init generator (#32587)

    ❤️ Thank You

    • Caleb Ukle
    • Chau Tran @nartc
    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • Louie Weng @lourw
    • MaxKless @MaxKless
    • Nicole Oliver
    • Steven Nance
    Open source →
  31. 21.5.0-beta.121 Aug 2025pre-release
    Release notes

    21.5.0-beta.1 (2025-08-21)

    🚀 Features

    • graph: task graph support multiple targets (#32418)
    • js: add includeIgnoredAssetFiles option and per-asset includeIgnoredFiles (#31813)
    • vite: support vite 7 (#32422)

    🩹 Fixes

    • 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: 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)
    • devkit: include UPDATE changes in findCreatedProjectFiles for generator callbacks (#31429, #29852)
    • misc: respect string values in alwaysAddToPackageJson migration flag (#32433, #30586)
    • module-federation: do not rely on virtualRuntimeEntry #31831 (#32387, #31831, #32404)
    • plugin: handle directory paths correctly in executor and generator generators (#31856, #31803, #31776)

    ❤️ Thank You

    • Chau Tran @nartc
    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  32. 21.5.0-beta.020 Aug 2025pre-release
    Release notes

    21.5.0-beta.0 (2025-08-20)

    🚀 Features

    • 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)
    • rspack: add support for converting webpack plugin configs #30292 (#32382, #30292)
    • 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)
    • 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)
    • devkit: restore peer dep range to 2 majors (#32406, #31801)
    • graph: some misc fixes to the graph (#32401)
    • 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)
    • misc: update @types/node to v20.19.9 to support fetch API (#32092, #31637)
    • nx-dev: update navbar CTA buttons and updates event tracking (#32392)
    • 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)
    • webpack: migrate from deprecated url.parse() to WHATWG URL API (#32399)

    ❤️ Thank You

    • Chau Tran @nartc
    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Jonathan Gelin @jogelin
    • Juri @juristr
    • Juri Strumpflohner @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Marc Palm @marcpalm
    • Nicholas Cunningham @ndcunningham
    • Tomáš Čarnecký @wereHamster
    Open source →
  33. 21.4.122 Aug 2025
    Release notes

    21.4.1 (2025-08-22)

    🚀 Features

    • graph: task graph support multiple targets (#32418)
    • js: add includeIgnoredAssetFiles option and per-asset includeIgnoredFiles (#31813)
    • js: detect duplicate project references in @nx/js:typescript-sync (#32443)
    • nx: use platform certificate trust store (#31999)
    • nx-dev: link ukg article on homepage (8d16697547)
    • nx-dev: configure rewrite to astro-docs when NEXT_PUBLIC_ASTRO_URL is set (#32424)
    • repo: add GitHub Actions workflow to validate PR titles (#32458)
    • rspack: add support for converting webpack plugin configs #30292 (#32382, #30292)
    • tools: add repository update system for automated Nx migrations (#32124)
    • webpack: migrate from deprecated url.parse() to WHATWG URL API (70fb618785)

    🩹 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)
    • devkit: restore peer dep range to 2 majors (#32406, #31801)
    • devkit: include UPDATE changes in findCreatedProjectFiles for generator callbacks (#31429, #29852)
    • 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)
    • graph: some misc fixes to the graph (#32401)
    • graph: nxArgs.projects can be an empty array (#32479)
    • 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)
    • 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-dev: update navbar CTA buttons and updates event tracking (#32392)
    • plugin: handle directory paths correctly in executor and generator generators (#31856, #31803, #31776)
    • 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)
    • webpack: migrate from deprecated url.parse() to WHATWG URL API (#32399)

    ❤️ Thank You

    • Chau Tran @nartc
    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • FrozenPandaz @FrozenPandaz
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Jonathan Gelin @jogelin
    • Juri @juristr
    • Juri Strumpflohner @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Louie Weng @lourw
    • Marc Palm @marcpalm
    • MaxKless @MaxKless
    • Nicholas Cunningham @ndcunningham
    • Tomáš Čarnecký @wereHamster
    Open source →
  34. 21.4.015 Aug 2025
    Release notes

    21.4.0 (2025-08-15)

    🚀 Features

    • add new angular- packages and create legacy packages (#3)
    • add new angular- packages and create legacy packages (#3)
    • angular: update ngrx to v20 (#32140)
    • angular-rspack: add angular rspack to nx repo (31c2810e7e)
    • angular-rspack: add withConfigurations (#6)
    • angular-rspack: support expanded syntax for assets, styles, and scripts (#28)
    • angular-rspack: support extractLicenses option (#30)
    • angular-rspack: improve createConfig public api (#35)
    • angular-rspack: support host option for the dev server (#38)
    • angular-rspack: add allowedHosts option (#47)
    • angular-rspack: add support for i18n (#51)
    • angular-rspack: add service-worker support (#55)
    • angular-rspack: improve entry files handling and index.html generation (#56)
    • angular-rspack: use development config for serve (#61)
    • angular-rspack: support static site generation (#65)
    • angular-rspack: improve styles processing and support tailwindcss v4 (#70)
    • angular-rspack: add support for more devServer options (#71)
    • angular-rspack: add hmr support (#78)
    • angular-rspack: add statsJson plugin (#79)
    • angular-rspack: add poll option (#80)
    • angular-rspack: add verbose option (#82)
    • angular-rspack: add progress option (#83)
    • angular-rspack: add watch option (#84)
    • angular-rspack: add open option (#85)
    • angular-rspack: finalize devServer options (#86)
    • angular-rspack: add granular optimization support (#89)
    • angular-rspack: add budgets support (#92)
    • angular-rspack: add appShell option (#93)
    • angular-rspack: support index transformer (#118)
    • angular-rspack: include js-based postcss config (#120)
    • angular-rspack: support pkg scheme importer (#124)
    • angular-rspack: Add "zoneless" option to enable Angular's provideZonelessChangeDetection() usage (#115)
    • angular-rspack: add angular-rspack package (16035f42fd)
    • angular-rspack: move angular rspack to nx (#32226)
    • angular-rspack,angular-rsbuild: rename jit to aot (#11)
    • angular-rspack,angular-rsbuild: rename tsconfigPath to tsConfig (#13)
    • angular-rspack,angular-rsbuild: rename inlineStylesExtension to inlineStyleLanguage (#14)
    • angular-rspack,angular-rsbuild: support web workers (#58)
    • angular-rspack,angular-rsbuild: refactor withConfigurations to be createConfig (#9)
    • angular-rspack,angular-rsbuild: rename jit to aot (#11)
    • angular-rspack,angular-rsbuild: rename tsconfigPath to tsConfig (#13)
    • angular-rspack,angular-rsbuild: rename inlineStylesExtension to inlineStyleLanguage (#14)
    • angular-rspack,angular-rsbuild: support passing devServer options (#16)
    • angular-rspack,angular-rsbuild: add optimization option (#21)
    • angular-rspack,angular-rsbuild: rename ssrEntry to ssr.entry (#20)
    • angular-rspack,angular-rsbuild: add outputHashing option (#22)
    • angular-rspack,angular-rsbuild: support ssl, sslKey, sslCert, and proxyConfig options (#24)
    • angular-rspack,angular-rsbuild: turn on/off advanced optimizations based on provided options (#26)
    • angular-rspack,angular-rsbuild: remove root from api (#23)
    • angular-rspack,angular-rsbuild: add outputPath option (#27)
    • angular-rspack,angular-rsbuild: add sourcemap option (#29)
    • angular-rspack,angular-rsbuild: add chunking options (#31)
    • angular-rspack,angular-rsbuild: add root option and improve tsConfig handling (#33)
    • angular-rspack,angular-rsbuild: add define option (#45)
    • angular-rspack,angular-rsbuild: add preserveSymlinks option (#48)
    • angular-rspack,angular-rsbuild: add deleteOutputPath option (#49)
    • angular-rspack,angular-rsbuild: add externalDependencies option (#50)
    • angular-rspack,angular-rsbuild: support web workers (#58)
    • angular-rspack,angular-rspack-compiler: reuse existing compilation if exists (#77)
    • angular-rspack,angular-rspack-compiler: support angular 20 (#99)
    • angular-rspack,angular-rspack-compiler: update to angular 20.1.0 (0b180575b9)
    • angular-rspack,angular-rspack-compiler: reuse existing compilation if exists (#77)
    • angular-rspack,angular-rspack-compiler: support angular 20 (#99)
    • angular-rspack,angular-rspack-compiler: update to angular 20.1.0 (438fdf37eb)
    • ⚠️ bundling: remove stylus support (#32035)
    • core: add tsBuildInfoFile option all packages tsconfig.lib.json (#32030)
    • core: log out-of-sync details returned by sync generators when running nx sync:check (#32072)
    • core: display estimated task durations in the tui terminal pane when available (#31972)
    • core: add bun parser (#31973, #31862, #31433, #31338, #30607, #30603, #30466, #30460, #30362, #30302)
    • core: add nx mcp command (#32022)
    • core: calculate dependency view area safely in the tui and render its scrollbar in the correct position (#32187)
    • core: add argv field to Pre/Post Tasks Execution contexts (#32259)
    • core: add automatic pane switching for failed dependencies (#32006)
    • docker: add docker plugin (#31634)
    • docker: add support for {env.VAR_NAME} (#32255)
    • docker: add --dockerVersion flag for specifying exact version (#32266)
    • expo: upgrade Expo to v53 and React Native to 0.79 (#31497, #30557, #31416, #31498)
    • gradle: derive atomizer test names using AST parsing (#32275)
    • gradle: enable migrations to occur with workspaces using version catalogs (#32342)
    • graph: remove legacy graph (#32117)
    • graph: optimize task graph loading with lazy loading and caching (#31581)
    • js: ignore scoped export conditions (#32063)
    • js: add esm support for esbuild and running serve with the node executor (#31965, #10296)
    • js: add plugin option to skip build checks when inferring the build task (#32358)
    • misc: update repo to 21.4.0-beta.4 (#32180)
    • node: add prune target to node apps (#32119)
    • node: setup docker should init the docker plugin (#32120)
    • node: enhance debugging support for Node applications (#31949)
    • nx-dev: make payfit testimonial clickable on nx cloud page (c2d0ecfd82)
    • nx-dev: update nx.dev homepage (#32132)
    • nx-dev: adjustments to nx.dev homepage (#32235)
    • release: allow custom nx-release-publish executors to read versionData (#32306)
    • repo: use ts solution in the nx repo (#31654)

    🩹 Fixes

    • angular: update jest-preset-angular to v15 (#32050, #32024)
    • angular: update migration target version for jest-preset-angular v15 package update (#32051)
    • angular: add missing config properties to adapter whitelist (#32186)
    • angular: prevent worker creation snippet from being added to worker file (#32339, #31977)
    • angular-rspack: remove failing node importer (331550b3ba)
    • angular-rspack: sass-loader should not be required when using css (#32)
    • angular-rspack: dev-server works for ssr (#34)
    • angular-rspack: fix assets normalization (#39)
    • angular-rspack: process styles correctly handling urls (#40)
    • angular-rspack: stylesheet should be attached to html (#41)
    • angular-rspack: publicPath for server should not be auto (4fb7b4f2e2)
    • angular-rspack: multiple configurations (#54)
    • angular-rspack: ensure ngDevMode set correctly by DefinePlugin (#57)
    • angular-rspack: mark @angular/localize as optional peer dep (#60)
    • angular-rspack: do not rely on nx workspace (#62)
    • angular-rspack: handle windows disk drive in loader #53 (#64, #53)
    • angular-rspack: ensure stylePreprocessorOptions is correctly used (#72)
    • angular-rspack: update @rspack/core dependency (#73)
    • angular-rspack: ssg should not run on serve (#75)
    • angular-rspack: remove options that do not exist in Angular Webpack (#81)
    • angular-rspack: type warning on budgets (916c40b7c3)
    • angular-rspack: ensure cjs for serve (#98)
    • angular-rspack: do not generate sourceMaps when disabled (75bcf5818a)
    • angular-rspack: ensure mode is set based on optimization settings (a0bd226843)
    • angular-rspack: exclude assets from being copied into server build (#117)
    • angular-rspack: apply SASS deprecation for global stylesheets (#119)
    • angular-rspack: fix ignore glob for .gitkeep (#121)
    • angular-rspack: add node_modules to includePaths if populated (#126)
    • angular-rspack: delete build outputPath only once (#127)
    • angular-rspack: remove failing node importer (abc3eeb0c0)
    • angular-rspack: ensure i18n inline plugin uses sourcemap correctly (1b73284df1)
    • angular-rspack,angular-rspack-compiler: surface errors from ComponentStylesheetResult ensuring sass andincludePaths are passed (#87)
    • angular-rspack,angular-rspack-compiler: surface errors from ComponentStylesheetResult ensuring sass andincludePaths are passed (#87)
    • angular-rspack-compiler: depend directly on @angular/build (5a11d7a4ba)
    • bundling: fix stylus installation error due to npm security (#32036)
    • bundling: normalize Windows paths for additionalEntryPoints (#32336, #29690)
    • core: adjust artifacts path for publish (#31979)
    • core: render the correct output in the tui terminal pane when pinning task (#31975)
    • core: handle undefined packageJson.dependencies (#31998)
    • core: improve build time by narrowing the path scope for upload (#32023)
    • core: improve tui minimal view display and prevent flashing scrollbar (#32045)
    • core: make tasks list columns in the tui more compact (#32074)
    • core: improve arrow key detection for interactive programs (#32075)
    • core: prevent thread leaks in nx_walker and logger (#32061)
    • core: disable TUI on ai agents (#31480)
    • core: derive graph node type correctly when projectType is not set (#32018, #31983)
    • core: pnpm lockfile parser handles undefined dependencies (#32084)
    • core: prevent --skipInstall from being passed from create-nx-workspace to new generator (#32086, #31834)
    • core: cloud commands should be handled before loading local (#32090)
    • core: remove graph creation from postinstall hook (#32027, #31694)
    • core: only traverse workspace node when it exists (#32165)
    • core: add dockerVersionScheme to nx release version (#32172)
    • core: cleanup dockerVersionScheme option in release to use withX pattern (#32185)
    • core: provide hint that vite will be used when selecting React Router (#32238)
    • core: ensure task details are always stored in the task history (#32246)
    • core: don't throw during migrate ui execution if migrations.json is gitignored (#32166)
    • core: repair nx mcp command (#32264)
    • core: update http-proxy-middleware to resolve vulnerability (#32278)
    • core: prevent TUI buffer overflow panics in dependency view scrollbar rendering (#32292)
    • core: include nested library dependencies in generated package.json (#32313, #30895)
    • core: prevent error.log from generating during create-nx-workspace (#32317)
    • core: handle .nx installation during nx migrate (#32357)
    • docker: format current date to UTC (#32103)
    • docker: ensure release fetches data from stdout correctly (#32149)
    • docker: add release support when registryUrl is set to docker.io (#32174)
    • docker: add docker target group for pdv (#32167)
    • docker: generate dockerfile compliant with package manager (#32191)
    • expo: update heading text assertion to use regex for flexibility (#31542)
    • gradle: fix bootJar, add excludeDependsOn to false (#32157)
    • gradle: keep original gradle name (#32220)
    • gradle: always add plugin to all projects (#32222)
    • gradle: normalize project root paths (#32243)
    • gradle: fix gradle bootRun continuous (#32107)
    • jest: revert version back to 29 (#31981)
    • jest: revert back to Jest 30 after synckit compatibility fix (#31984, #31981)
    • js: resolve relative imports correctly in nested projects (#31978, #31980)
    • js: handle npm 11 warnings in stderr during registry version resolution (#32223)
    • js: fix npm dist-tag error handling TypeError in release-publish executor (#32289)
    • js: node executor handles processes robustly (#32356, #30247, #22999, #22945)
    • linter: update lint executor to correctly handle --fix and --quiet (#31970, #31868)
    • linter: handle negative numbers in flat config AST generation (#32085, #31955)
    • misc: fix setup selection (#31997)
    • misc: allow scoped package names in application generators (#31957, #31229)
    • misc: critical severity for form-data package (#32108)
    • misc: small tweaks in messaging (#32131)
    • misc: loose and fix the ts solution setup requirements and use it when there is no root tsconfig file (#32150, #32134)
    • misc: validate workspace names to reject names starting with numbers (#32088, #31602)
    • misc: ensure generateFiles is called using path.join (#32319)
    • module-federation: re-add support for mf aliases (#31347)
    • module-federation: use asyncStartup for ssr configuration (#32189)
    • module-federation: upgrade module federation to 0.18.0 (#32260)
    • module-federation: skip splitChunk options for prod build (#32330)
    • module-federation: module federation does not depend on static remotes port (#32363)
    • nextjs: infer relevant tasks with the typescript sync generator when using ts project references (#31996, #31983)
    • nextjs: configure Jest to use tsconfig.json for Next.js apps (#32089, #31555)
    • node: prune targets should depend on build (#32147)
    • node: ensure cache outputs are set for prune and copy workspace modules (#32171)
    • node: outputs should be in the correct format for prune and copy-workspace-modules targets (#32178)
    • node: ensure framework deps are added to app package.json (#32192)
    • node: ensure windows paths are resolved correctly #31992 (#32318, #31992)
    • node: ensure cwd is set in target correctly (#31864, #31863)
    • nx: update pricing link in launch templates (#32155)
    • nx-cloud: auth token env var usage (#32240)
    • nx-dev: reenable YouTube, and Tweet components to markdoc configuration (#32109)
    • nx-dev: adjust the filter ui on the blog to have it look less squeezed (990c6f60d1)
    • nx-dev: adjust mobile layout for homepage (#32237)
    • nx-dev: fix Open Graph image 404s (#32360)
    • react: remote generator should normalize names (#32211, #30807)
    • react: host generator should not add loadRemote helper when no remotes (#32352)
    • react-native: add release option to publisable react-native library (#29817)
    • release: provide a link to Manage Release page when "nx release"fails (#32153)
    • release: use top-level releaseTagPattern as the default for release groups (#32154)
    • release: support "nx relase changelog" for docker images (#32169)
    • release: adjust publish error message and version schema (#31190)
    • release: ensure no exception when conventionalCommits is false (#32256)
    • release: add missing git config options to nx-schema (#32300)
    • release: handle git_protocol https when getting auth token #31828 (#32353, #31828)
    • release: only delete version plans that are used #31327 (#32362, #31327)
    • rspack: update installed version of rspack to be same as @nx/rspack (#32152)
    • rspack: abide by rspacks watch configuration (#32133)
    • rspack: enable build mode for TypeScript checker in TS solution setups (#32340, #31929)
    • testing: normalize spec files correctly in jest replace-removed-matcher-aliases migration (#31995, #31991)
    • testing: add missing package updates for ts-jest and jest-util for jest v30 migrations (#32017)
    • testing: add NODE_OPTIONS flag for Node.js 24 compatibility (#32177)
    • vite: fix rollup replace files (#32100)
    • vite: set name property for test to project name #32163 (#32308, #32163)
    • vite: add tslib as a dep for @nx/vite and remove @swc/helpers (#32341)
    • webpack: add missing serveStaticTargetName alternatives to webpack init generator (#32309, #32267, #31384)

    ⚠️ Breaking Changes

    • bundling: Stylus (.styl) files are no longer supported.

    ❤️ Thank You

    • Abdullah Ebrahim @A-EbrahimRSA
    • Aidan Temple @aidant
    • Chau Tran @nartc
    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • Emily Xiong @xiongemi
    • Gil Hanan @gilhanan
    • Hassan Khan
    • Jack Baker @JackWBaker
    • Jack Hsu @jaysoo
    • Jakub Chlebowicz @Chlebamaticon
    • James Henry @JamesHenry
    • Jason Jean @FrozenPandaz
    • Jay Bell
    • Josh VanAllen @joshvanallen
    • Juri @juristr
    • Juri Strumpflohner @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Louie Weng @lourw
    • Luca Peruzzo @luca-peruzzo
    • Marvin Scharle @marvinscharle
    • MaxKless @MaxKless
    • Mohamed Muhsin @muhsinkamil
    • Nicholas Cunningham @ndcunningham
    • Nicole Oliver
    • PhillipDNrwl
    • Rodrigo Yokota @ryok90
    • Terry Mun-Andersen @terrymun
    • Tobias Lampert @vz-tl
    • Victor Savkin @vsavkin
    • Wenzel @creadicted
    • Yordan Kanchelov @yordan-kanchelov
    • Zack Yang @zack9433
    Open source →
  35. 21.4.0-canary.20250815-18ba31515 Aug 2025pre-release

    Nothing published for this version

  36. 21.4.0-canary.20250813-811d18413 Aug 2025pre-release

    Nothing published for this version

  37. 21.4.0-canary.20250812-d2a059312 Aug 2025pre-release

    Nothing published for this version

  38. 21.4.0-canary.20250809-014e7759 Aug 2025pre-release

    Nothing published for this version

  39. 21.4.0-canary.20250808-c60258e8 Aug 2025pre-release

    Nothing published for this version

  40. 21.4.0-canary.20250807-166a0507 Aug 2025pre-release

    Nothing published for this version

  41. 21.4.0-canary.20250805-990c6f65 Aug 2025pre-release

    Nothing published for this version

  42. 21.4.0-canary.20250802-b88664f2 Aug 2025pre-release

    Nothing published for this version

  43. 21.4.0-canary.20250801-e0a38291 Aug 2025pre-release

    Nothing published for this version

  44. 21.4.0-canary.20250731-b9bfeeb31 Jul 2025pre-release

    Nothing published for this version

  45. 21.4.0-canary.20250730-8ef7d0e30 Jul 2025pre-release

    Nothing published for this version

  46. 21.4.0-canary.20250729-c2d0ecf29 Jul 2025pre-release

    Nothing published for this version

  47. 21.4.0-canary.20250726-64897b726 Jul 2025pre-release

    Nothing published for this version

  48. 21.4.0-canary.20250725-0359f0d25 Jul 2025pre-release

    Nothing published for this version

  49. 21.4.0-canary.20250724-b7c1c0e24 Jul 2025pre-release

    Nothing published for this version

  50. 21.4.0-canary.20250722-5163bcd22 Jul 2025pre-release

    Nothing published for this version

  51. 21.4.0-canary.20250719-34c5b6119 Jul 2025pre-release

    Nothing published for this version

  52. 21.4.0-beta.1213 Aug 2025pre-release
    Release notes

    21.4.0-beta.12 (2025-08-13)

    🚀 Features

    • expo: upgrade Expo to v53 and React Native to 0.79 (#31497, #30557, #31416, #31498)
    • gradle: enable migrations to occur with workspaces using version catalogs (#32342)

    🩹 Fixes

    • angular: prevent worker creation snippet from being added to worker file (#32339, #31977)
    • bundling: normalize Windows paths for additionalEntryPoints (#32336, #29690)
    • module-federation: skip splitChunk options for prod build (#32330)
    • node: ensure cwd is set in target correctly (#31864, #31863)
    • release: add missing git config options to nx-schema (#32300)
    • rspack: enable build mode for TypeScript checker in TS solution setups (#32340, #31929)
    • vite: add tslib as a dep for @nx/vite and remove @swc/helpers (#32341)

    ❤️ Thank You

    • Abdullah Ebrahim @A-EbrahimRSA
    • Colum Ferry @Coly010
    • Hassan Khan
    • Jack Hsu @jaysoo
    • Louie Weng @lourw
    • Rodrigo Yokota @ryok90
    • Wenzel @creadicted
    Open source →
  53. 21.4.0-beta.1112 Aug 2025pre-release
    Release notes

    21.4.0-beta.11 (2025-08-12)

    🚀 Features

    • gradle: derive atomizer test names using AST parsing (#32275)

    ❤️ Thank You

    • Louie Weng @lourw
    Open source →
  54. 21.4.0-beta.1012 Aug 2025pre-release
    Release notes

    21.4.0-beta.10 (2025-08-12)

    🚀 Features

    • release: allow custom nx-release-publish executors to read versionData (#32306)

    🩹 Fixes

    • core: include nested library dependencies in generated package.json (#32313, #30895)
    • core: prevent error.log from generating during create-nx-workspace (#32317)
    • misc: ensure generateFiles is called using path.join (#32319)
    • node: ensure windows paths are resolved correctly #31992 (#32318, #31992)
    • vite: set name property for test to project name #32163 (#32308, #32163)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Jack Hsu @jaysoo
    • James Henry @JamesHenry
    Open source →
  55. 21.4.0-beta.912 Aug 2025pre-release
    Release notes

    21.4.0-beta.9 (2025-08-12)

    🚀 Features

    • add new angular- packages and create legacy packages (#3)
    • add new angular- packages and create legacy packages (#3)
    • angular-rspack: add angular rspack to nx repo (31c2810e7e)
    • angular-rspack: add withConfigurations (#6)
    • angular-rspack: support expanded syntax for assets, styles, and scripts (#28)
    • angular-rspack: support extractLicenses option (#30)
    • angular-rspack: improve createConfig public api (#35)
    • angular-rspack: support host option for the dev server (#38)
    • angular-rspack: add allowedHosts option (#47)
    • angular-rspack: add support for i18n (#51)
    • angular-rspack: add service-worker support (#55)
    • angular-rspack: improve entry files handling and index.html generation (#56)
    • angular-rspack: use development config for serve (#61)
    • angular-rspack: support static site generation (#65)
    • angular-rspack: improve styles processing and support tailwindcss v4 (#70)
    • angular-rspack: add support for more devServer options (#71)
    • angular-rspack: add hmr support (#78)
    • angular-rspack: add statsJson plugin (#79)
    • angular-rspack: add poll option (#80)
    • angular-rspack: add verbose option (#82)
    • angular-rspack: add progress option (#83)
    • angular-rspack: add watch option (#84)
    • angular-rspack: add open option (#85)
    • angular-rspack: finalize devServer options (#86)
    • angular-rspack: add granular optimization support (#89)
    • angular-rspack: add budgets support (#92)
    • angular-rspack: add appShell option (#93)
    • angular-rspack: support index transformer (#118)
    • angular-rspack: include js-based postcss config (#120)
    • angular-rspack: support pkg scheme importer (#124)
    • angular-rspack: Add "zoneless" option to enable Angular's provideZonelessChangeDetection() usage (#115)
    • angular-rspack: add angular-rspack package (16035f42fd)
    • angular-rspack: move angular rspack to nx (#32226)
    • angular-rspack,angular-rsbuild: rename jit to aot (#11)
    • angular-rspack,angular-rsbuild: rename tsconfigPath to tsConfig (#13)
    • angular-rspack,angular-rsbuild: rename inlineStylesExtension to inlineStyleLanguage (#14)
    • angular-rspack,angular-rsbuild: support web workers (#58)
    • angular-rspack,angular-rsbuild: refactor withConfigurations to be createConfig (#9)
    • angular-rspack,angular-rsbuild: rename jit to aot (#11)
    • angular-rspack,angular-rsbuild: rename tsconfigPath to tsConfig (#13)
    • angular-rspack,angular-rsbuild: rename inlineStylesExtension to inlineStyleLanguage (#14)
    • angular-rspack,angular-rsbuild: support passing devServer options (#16)
    • angular-rspack,angular-rsbuild: add optimization option (#21)
    • angular-rspack,angular-rsbuild: rename ssrEntry to ssr.entry (#20)
    • angular-rspack,angular-rsbuild: add outputHashing option (#22)
    • angular-rspack,angular-rsbuild: support ssl, sslKey, sslCert, and proxyConfig options (#24)
    • angular-rspack,angular-rsbuild: turn on/off advanced optimizations based on provided options (#26)
    • angular-rspack,angular-rsbuild: remove root from api (#23)
    • angular-rspack,angular-rsbuild: add outputPath option (#27)
    • angular-rspack,angular-rsbuild: add sourcemap option (#29)
    • angular-rspack,angular-rsbuild: add chunking options (#31)
    • angular-rspack,angular-rsbuild: add root option and improve tsConfig handling (#33)
    • angular-rspack,angular-rsbuild: add define option (#45)
    • angular-rspack,angular-rsbuild: add preserveSymlinks option (#48)
    • angular-rspack,angular-rsbuild: add deleteOutputPath option (#49)
    • angular-rspack,angular-rsbuild: add externalDependencies option (#50)
    • angular-rspack,angular-rsbuild: support web workers (#58)
    • angular-rspack,angular-rspack-compiler: reuse existing compilation if exists (#77)
    • angular-rspack,angular-rspack-compiler: support angular 20 (#99)
    • angular-rspack,angular-rspack-compiler: update to angular 20.1.0 (0b180575b9)
    • angular-rspack,angular-rspack-compiler: reuse existing compilation if exists (#77)
    • angular-rspack,angular-rspack-compiler: support angular 20 (#99)
    • angular-rspack,angular-rspack-compiler: update to angular 20.1.0 (438fdf37eb)

    🩹 Fixes

    • angular-rspack: remove failing node importer (331550b3ba)
    • angular-rspack: sass-loader should not be required when using css (#32)
    • angular-rspack: dev-server works for ssr (#34)
    • angular-rspack: fix assets normalization (#39)
    • angular-rspack: process styles correctly handling urls (#40)
    • angular-rspack: stylesheet should be attached to html (#41)
    • angular-rspack: publicPath for server should not be auto (4fb7b4f2e2)
    • angular-rspack: multiple configurations (#54)
    • angular-rspack: ensure ngDevMode set correctly by DefinePlugin (#57)
    • angular-rspack: mark @angular/localize as optional peer dep (#60)
    • angular-rspack: do not rely on nx workspace (#62)
    • angular-rspack: handle windows disk drive in loader #53 (#64, #53)
    • angular-rspack: ensure stylePreprocessorOptions is correctly used (#72)
    • angular-rspack: update @rspack/core dependency (#73)
    • angular-rspack: ssg should not run on serve (#75)
    • angular-rspack: remove options that do not exist in Angular Webpack (#81)
    • angular-rspack: type warning on budgets (916c40b7c3)
    • angular-rspack: ensure cjs for serve (#98)
    • angular-rspack: do not generate sourceMaps when disabled (75bcf5818a)
    • angular-rspack: ensure mode is set based on optimization settings (a0bd226843)
    • angular-rspack: exclude assets from being copied into server build (#117)
    • angular-rspack: apply SASS deprecation for global stylesheets (#119)
    • angular-rspack: fix ignore glob for .gitkeep (#121)
    • angular-rspack: add node_modules to includePaths if populated (#126)
    • angular-rspack: delete build outputPath only once (#127)
    • angular-rspack: remove failing node importer (abc3eeb0c0)
    • angular-rspack: ensure i18n inline plugin uses sourcemap correctly (1b73284df1)
    • angular-rspack,angular-rspack-compiler: surface errors from ComponentStylesheetResult ensuring sass andincludePaths are passed (#87)
    • angular-rspack,angular-rspack-compiler: surface errors from ComponentStylesheetResult ensuring sass andincludePaths are passed (#87)
    • angular-rspack-compiler: depend directly on @angular/build (5a11d7a4ba)
    • js: fix npm dist-tag error handling TypeError in release-publish executor (#32289)
    • webpack: add missing serveStaticTargetName alternatives to webpack init generator (#32309, #32267, #31384)

    ❤️ Thank You

    • Colum Ferry
    • Jakub Chlebowicz @Chlebamaticon
    • Jason Jean
    • Leosvel Pérez Espinosa
    • Marvin Scharle
    • Tobias Lampert @vz-tl
    • Yordan Kanchelov
    • Zack Yang @zack9433
    Open source →
  56. 21.4.0-beta.811 Aug 2025pre-release
    Release notes

    21.4.0-beta.8 (2025-08-11)

    🚀 Features

    • core: calculate dependency view area safely in the tui and render its scrollbar in the correct position (#32187)
    • core: add argv field to Pre/Post Tasks Execution contexts (#32259)
    • core: add automatic pane switching for failed dependencies (#32006)
    • docker: add support for {env.VAR_NAME} (#32255)
    • docker: add --dockerVersion flag for specifying exact version (#32266)
    • graph: optimize task graph loading with lazy loading and caching (#31581)
    • js: ignore scoped export conditions (#32063)
    • js: add esm support for esbuild and running serve with the node executor (#31965, #10296)
    • node: enhance debugging support for Node applications (#31949)

    🩹 Fixes

    • core: don't throw during migrate ui execution if migrations.json is gitignored (#32166)
    • core: repair nx mcp command (#32264)
    • core: update http-proxy-middleware to resolve vulnerability (#32278)
    • core: prevent TUI buffer overflow panics in dependency view scrollbar rendering (#32292)
    • expo: update heading text assertion to use regex for flexibility (#31542)
    • module-federation: upgrade module federation to 0.18.0 (#32260)
    • release: adjust publish error message and version schema (#31190)
    • release: ensure no exception when conventionalCommits is false (#32256)
    • vite: fix rollup replace files (#32100)

    ❤️ Thank You

    • Abdullah Ebrahim @A-EbrahimRSA
    • Aidan Temple @aidant
    • Colum Ferry @Coly010
    • Gil Hanan @gilhanan
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • Luca Peruzzo @luca-peruzzo
    • MaxKless @MaxKless
    • Mohamed Muhsin @muhsinkamil
    • Nicholas Cunningham @ndcunningham
    • Terry Mun-Andersen @terrymun
    Open source →
  57. 21.4.0-beta.77 Aug 2025pre-release
    Release notes

    21.4.0-beta.7 (2025-08-07)

    🚀 Features

    • nx-dev: adjustments to nx.dev homepage (#32235)

    🩹 Fixes

    • core: provide hint that vite will be used when selecting React Router (#32238)
    • core: ensure task details are always stored in the task history (#32246)
    • gradle: normalize project root paths (#32243)
    • gradle: fix gradle bootRun continuous (#32107)
    • misc: validate workspace names to reject names starting with numbers (#32088, #31602)
    • nextjs: configure Jest to use tsconfig.json for Next.js apps (#32089, #31555)
    • nx-cloud: auth token env var usage (#32240)
    • nx-dev: adjust mobile layout for homepage (#32237)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Emily Xiong @xiongemi
    • Jason Jean @FrozenPandaz
    • Josh VanAllen @joshvanallen
    • Juri Strumpflohner @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Nicholas Cunningham @ndcunningham
    • Nicole Oliver
    Open source →
  58. 21.4.0-beta.65 Aug 2025pre-release
    Release notes

    21.4.0-beta.6 (2025-08-05)

    🚀 Features

    • nx-dev: update nx.dev homepage (#32132)

    🩹 Fixes

    • gradle: keep original gradle name (#32220)
    • gradle: always add plugin to all projects (#32222)
    • js: handle npm 11 warnings in stderr during registry version resolution (#32223)
    • misc: loose and fix the ts solution setup requirements and use it when there is no root tsconfig file (#32150, #32134)
    • module-federation: use asyncStartup for ssr configuration (#32189)
    • nx: update pricing link in launch templates (#32155)
    • nx-dev: adjust the filter ui on the blog to have it look less squeezed (990c6f60d1)
    • react: remote generator should normalize names (#32211, #30807)
    • rspack: abide by rspacks watch configuration (#32133)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Emily Xiong @xiongemi
    • Jack Baker @JackWBaker
    • Jay Bell
    • Juri @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Nicholas Cunningham @ndcunningham
    • Nicole Oliver
    • PhillipDNrwl
    Open source →
  59. 21.4.0-beta.51 Aug 2025pre-release
    Release notes

    21.4.0-beta.5 (2025-08-01)

    🚀 Features

    • graph: remove legacy graph (#32117)
    • misc: update repo to 21.4.0-beta.4 (#32180)

    🩹 Fixes

    • angular: add missing config properties to adapter whitelist (#32186)
    • core: cleanup dockerVersionScheme option in release to use withX pattern (#32185)
    • docker: add docker target group for pdv (#32167)
    • docker: generate dockerfile compliant with package manager (#32191)
    • module-federation: re-add support for mf aliases (#31347)
    • node: ensure framework deps are added to app package.json (#32192)

    ❤️ Thank You

    • Chau Tran @nartc
    • Colum Ferry @Coly010
    • Leosvel Pérez Espinosa @leosvelperez
    • Nicholas Cunningham @ndcunningham
    • Rodrigo Yokota @ryok90
    Open source →
  60. 21.4.0-beta.431 Jul 2025pre-release
    Release notes

    21.4.0-beta.4 (2025-07-31)

    🚀 Features

    • angular: update ngrx to v20 (#32140)
    • node: setup docker should init the docker plugin (#32120)

    🩹 Fixes

    • core: only traverse workspace node when it exists (#32165)
    • core: add dockerVersionScheme to nx release version (#32172)
    • docker: ensure release fetches data from stdout correctly (#32149)
    • docker: add release support when registryUrl is set to docker.io (#32174)
    • gradle: fix bootJar, add excludeDependsOn to false (#32157)
    • misc: small tweaks in messaging (#32131)
    • node: prune targets should depend on build (#32147)
    • node: ensure cache outputs are set for prune and copy workspace modules (#32171)
    • node: outputs should be in the correct format for prune and copy-workspace-modules targets (#32178)
    • release: provide a link to Manage Release page when "nx release"fails (#32153)
    • release: use top-level releaseTagPattern as the default for release groups (#32154)
    • release: support "nx relase changelog" for docker images (#32169)
    • rspack: update installed version of rspack to be same as @nx/rspack (#32152)
    • testing: add NODE_OPTIONS flag for Node.js 24 compatibility (#32177)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Emily Xiong @xiongemi
    • Jack Hsu @jaysoo
    • Leosvel Pérez Espinosa @leosvelperez
    • Nicholas Cunningham @ndcunningham
    • Victor Savkin @vsavkin
    Open source →