The JS plugin for Nx contains executors and generators that provide the best experience for developing JavaScript and TypeScript projects.
Last release today
26 Aug 2026
Ships on a steady schedule
a new release about every 9 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
3 years old
1889 releases · first in 2023
Release timeline
1889 releases since 2023Releases
- 21.6.1-beta.09 Sept 2025pre-release
Release notes
Open source →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
- 21.6.0-canary.20250926-7f4a8ea26 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250926-6480d3d26 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250924-bd1b68924 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250923-146f57723 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250922-dbcafa022 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250917-93fcc4817 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250916-a42997216 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250915-98c47f015 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250912-cfc03a212 Sept 2025pre-release
Nothing published for this version
- 21.6.0-canary.20250908-95e7b498 Sept 2025pre-release
Nothing published for this version
- 21.5.319 Sept 2025
Release notes
Open source →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
- 21.5.211 Sept 2025
Release notes
Open source →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
- 21.5.18 Sept 2025
Release notes
Open source →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
RankDirPanelfrom 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
tsConfigoption 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
nxas 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/typescriptplugin check for buildable libraries (#32405, #32116, #32290) - js: do not infer the project type in the
@nx/js/typescriptplugin (#32421) - js: use a unique typescript custom condition name for the workspace (#32429, #31332)
- js: store stale references correctly in
typescript-syncgenerator (#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
packagesexistence 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.jsonin 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
- 21.5.1-beta.55 Sept 2025pre-release
- 21.5.1-beta.45 Sept 2025pre-release
Release notes
Open source →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
nxas 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
- 21.5.1-beta.33 Sept 2025pre-release
Release notes
Open source →21.5.1-beta.3 (2025-09-03)
🚀 Features
- nx-dev: update homepage subtagline (2af5446fba)
🩹 Fixes
- js: store stale references correctly in
typescript-syncgenerator (#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
- 21.5.0-canary.20250904-ec1f1a44 Sept 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250904-2c678a14 Sept 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250902-f34b5ef2 Sept 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250902-92bd11a2 Sept 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250829-23cffe629 Aug 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250828-e634b5828 Aug 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250826-af4460826 Aug 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250823-a93e74e23 Aug 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250822-2e3940222 Aug 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250821-4ba208521 Aug 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250819-2307a8d19 Aug 2025pre-release
Nothing published for this version
- 21.5.0-canary.20250816-fcfb5ab16 Aug 2025pre-release
Nothing published for this version
- 21.5.0-beta.22 Sept 2025pre-release
Release notes
Open source →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
RankDirPanelfrom 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
packagesexistence 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
- 21.5.0-beta.121 Aug 2025pre-release
Release notes
Open source →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
- 21.5.0-beta.020 Aug 2025pre-release
Release notes
Open source →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
tsConfigoption 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/typescriptplugin check for buildable libraries (#32405, #32116, #32290) - js: do not infer the project type in the
@nx/js/typescriptplugin (#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.jsonin 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
- 21.4.122 Aug 2025
Release notes
Open source →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
tsConfigoption 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/typescriptplugin check for buildable libraries (#32405, #32116, #32290) - js: do not infer the project type in the
@nx/js/typescriptplugin (#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
packagesexistence 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.jsonin 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
- 21.4.015 Aug 2025
Release notes
Open source →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, andscripts(#28) - angular-rspack: support
extractLicensesoption (#30) - angular-rspack: improve createConfig public api (#35)
- angular-rspack: support
hostoption 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, andproxyConfigoptions (#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
rootoption and improvetsConfighandling (#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-angularto v15 (#32050, #32024) - angular: update migration target version for
jest-preset-angularv15 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
stylePreprocessorOptionsis correctly used (#72) - angular-rspack: update
@rspack/coredependency (#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
projectTypeis 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
--fixand--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-aliasesmigration (#31995, #31991) - testing: add missing package updates for
ts-jestandjest-utilfor 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
- 21.4.0-canary.20250815-18ba31515 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250813-811d18413 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250812-d2a059312 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250809-014e7759 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250808-c60258e8 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250807-166a0507 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250805-990c6f65 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250802-b88664f2 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250801-e0a38291 Aug 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250731-b9bfeeb31 Jul 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250730-8ef7d0e30 Jul 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250729-c2d0ecf29 Jul 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250726-64897b726 Jul 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250725-0359f0d25 Jul 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250724-b7c1c0e24 Jul 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250722-5163bcd22 Jul 2025pre-release
Nothing published for this version
- 21.4.0-canary.20250719-34c5b6119 Jul 2025pre-release
Nothing published for this version
- 21.4.0-beta.1213 Aug 2025pre-release
Release notes
Open source →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
- 21.4.0-beta.1112 Aug 2025pre-release
Release notes
Open source →21.4.0-beta.11 (2025-08-12)
🚀 Features
- gradle: derive atomizer test names using AST parsing (#32275)
❤️ Thank You
- Louie Weng @lourw
- 21.4.0-beta.1012 Aug 2025pre-release
Release notes
Open source →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
- 21.4.0-beta.912 Aug 2025pre-release
Release notes
Open source →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, andscripts(#28) - angular-rspack: support
extractLicensesoption (#30) - angular-rspack: improve createConfig public api (#35)
- angular-rspack: support
hostoption 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, andproxyConfigoptions (#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
rootoption and improvetsConfighandling (#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
stylePreprocessorOptionsis correctly used (#72) - angular-rspack: update
@rspack/coredependency (#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
- 21.4.0-beta.811 Aug 2025pre-release
Release notes
Open source →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
- 21.4.0-beta.77 Aug 2025pre-release
Release notes
Open source →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
- 21.4.0-beta.65 Aug 2025pre-release
Release notes
Open source →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
- 21.4.0-beta.51 Aug 2025pre-release
Release notes
Open source →21.4.0-beta.5 (2025-08-01)
🚀 Features
🩹 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
- 21.4.0-beta.431 Jul 2025pre-release
Release notes
Open source →21.4.0-beta.4 (2025-07-31)
🚀 Features
🩹 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