Releases: nrwl/nx
Releases · nrwl/nx
21.2.0-beta.4
21.2.0-beta.4 (2025-06-10)
🩹 Fixes
- core: remove log_error function and standardize logging (#31515)
❤️ Thank You
- Jason Jean @FrozenPandaz
21.2.0-beta.3
21.2.0-beta.3 (2025-06-09)
🚀 Features
⚠️ angular: support angular v20 (#31369)- angular: update angular eslint packages to v20 (#31489)
- bundling: use tsconfig.lib.json for rollup.config.ts (#30453)
- misc: enhance IDE integration with Nx Console auto-installation and improved logging (#31462)
- repo: add golden list of projects to our Nightly CI (#31414)
- repo: add ndcunningham to Claude workflow authorized users (#31479)
- repo: migrate to pnpm 10 (#31427)
⚠️ storybook: support storybook 9 (#31172)
🩹 Fixes
- add .ts extension to nx-release script reference in project.json (#31483)
- bundling: do not normalize tsconfig path for Windows with rollup (#30567)
- core: use
ts-node
option from tsconfig files when creating transpiler (#31469) - core: Update macos pipelines configuration (#31476)
- core: scope typescript resolution cache correctly when processing the graph (#31455, #31223)
- core: remove tabs from local workspace plugins section in nx report (#31490)
- core: handle external node without default version when generating a pnpm pruned lockfile (#31503, #28627)
- core: add conditional compilation for WASM build compatibility (#31491)
- core: default to 'run' target when only project is specified (#31452)
- linter: infer lint tasks with inputs using
{workspaceRoot}
to support nested projects (#31488, #31264) - linter: update allowed ESLint config file extensions (#30127)
- nextjs: add extension alias support for handling ESM libs (#31323, #30714)
- node: esbuild breaks and does not cleanup (#30469)
- react: allow for buildTargetWebpack to have an executor of @nx/webpack:webpack or @nx/rspack:rspack (#30253, #30235)
- release: sort groups topologically bottom-up and fix typo to allow multi-level group dependencies (#31374)
- release: changelog filtering logic for the project commits (#31449)
- rspack: Add missing return for rspack composoable plugin (#31372)
- rspack: must run type check with @nx/rspack:rspack when skipTypeChecking is false (#31027, #31026)
- vite: NxReporter compatible with Vitest ≥0.29 (#31425)
- webpack: handle package.json exports field for non-buildable libs (#31444)
⚠️ Breaking Changes
- storybook: Remove deprecated generators:
- angular: Support for Angular v17 was dropped.
❤️ Thank You
- Colum Ferry @Coly010
- dpnolte @dpnolte
- Jacob S
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- Matthias Stemmler @ms-tng
- Miguel @mpsanchis
- Nadav Shatz
- Nicholas Cunningham @ndcunningham
- Paul Bohm @enki
- Paweł Tymczuk @LetItRock
- Petr Plenkov
- Rui Lima @rapzo
- Torin
21.1.3
21.1.3 (2025-06-06)
🚀 Features
- nx-dev: AI landing page (#31310)
- nx-dev: update hero tagline (53ea3062e7)
- nx-dev: add rss and atom feeds (77dea60a49)
- repo: add golden list of projects to our Nightly CI (#31414)
🩹 Fixes
- angular: keep extra target metadata when needed in
convert-to-rspack
generator (#31309) - core: handle killing child processes of continuous tasks on Windows (#31296, #31235)
- core: generate workspace file readme typo (#31341, #31335)
- core: fix broken nx-cloud url shortening logic (#31283)
- core: infer codex environment and use default tasks runner (#31359)
- core: use next available port when the port for nx graph is in use (#31365, #30915)
- core: handle run-commands targets with no commands (#31364, #31345)
- core: implement missing --print flag for nx graph command (#31406, #30255)
- core: update getTouchedProjectsFromLockFile to handle deleted/moved projects correctly (#31361)
- core: ensure nx init implementation for angular correctly resolves
@angular/core
(#31430, #31291) - core: print installation logs when installing latest version during
nx migrate
and using--verbose
(#31432) - core: use
ts-node
option from tsconfig files when creating transpiler (#31469) - core: Update macos pipelines configuration (#31476)
- gradle: change run and bootRun to cacheable false (#31287)
- gradle: add migration script to check gradle plugin version (#31304)
- js: write typescript plugin cache files atomically (#31390, #30239, #31187)
- js: enable end-to-end tests for Vue application in dev mode (#31415)
- linter: speed up inferred plugin node processing (#31281)
- linter: handle
ng-package.json
file with nolib.entryFile
in@nx/enforce-module-boundaries
rule (#31360) - linter: fix line endings handling in '@nx/eslint:convert-to-flat-config' generator (#31043)
- module-federation: enhance remote entry handling with query parameters in paths (#30615, #30602)
- nextjs: add extension alias support for handling ESM libs (#31323, #30714)
- node: add project name sanitization for Docker commands. (#31461, #31421)
- nx-dev: only track analytics in prod envs (#31367)
- react: add missing dependency when generating a react lib that has testing (#31308)
- react: routing option to library generator (#31328, #30721)
- release: sort groups topologically bottom-up and fix typo to allow multi-level group dependencies (#31374)
- remix: update setup-tailwind generator to correct import statements (#30599, #30343)
- rspack: fix issue with optimization options in rspack config (#31337, #31268, #30292)
- rspack: ensure nest applications generated correctly #31204 (#31424, #31204)
- rspack: Add missing return for rspack composoable plugin (#31372)
- storybook: improve speed of storybook plugin (#31277, #22953, #31276)
- vite: bump @analogjs/vite-plugin-angular to 1.16.x (#31317)
- vite: add ajv dependency for non-pnpm package managers (#31413)
- vite: resolve project-specific tsconfig before workspace fallback (#31423, #28945)
- webpack: add support for retrieving all transitive non-buildable dependencies (#31343)
❤️ Thank You
- Brandon Roberts @brandonroberts
- Charlie Croom
- Colum Ferry @Coly010
- Emily Xiong @xiongemi
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Johann Wagner @konqi
- Juri Strumpflohner @juristr
- laney
- Leosvel Pérez Espinosa @leosvelperez
- Miguel @mpsanchis
- Miroslav Jonaš @meeroslav
- Nadav Shatz
- Nicholas Cunningham @ndcunningham
- Terry @Teamop
21.2.0-beta.2
21.2.0-beta.2 (2025-06-05)
🚀 Features
- angular: update
nx init
legacy integrated migration for angular to handle angular v17 (#31352) - gradle: exclude dependsOn tasks (#30913)
- nest: Update nest version to 11 (#31393, #30188)
- nx-dev: update hero tagline (41387af458)
- nx-dev: add rss and atom feeds (ee7dbf9c3a)
- repo: enhance Claude Code workflow and settings (#31405, #31380)
🩹 Fixes
- angular: update tsconfig files generation to better support angular v20 (#31357)
- angular: keep extra target metadata when needed in
convert-to-rspack
generator (#31309) - angular: generate correct output for buildable libraries on windows (#31437, #31436)
- angular: optimize ng-packagr-lite watch mode file writing (#31434, #31033)
- core: generate workspace file readme typo (#31341, #31335)
- core: fix broken nx-cloud url shortening logic (#31283)
- core: infer codex environment and use default tasks runner (#31359)
- core: use next available port when the port for nx graph is in use (#31365, #30915)
- core: handle run-commands targets with no commands (#31364, #31345)
- core: implement missing --print flag for nx graph command (#31406, #30255)
- core: update getTouchedProjectsFromLockFile to handle deleted/moved projects correctly (#31361)
- core: ensure nx init implementation for angular correctly resolves
@angular/core
(#31430, #31291) - core: print installation logs when installing latest version during
nx migrate
and using--verbose
(#31432) - gradle: add migration script to check gradle plugin version (#31304)
- js: write typescript plugin cache files atomically (#31390, #30239, #31187)
- js: enable end-to-end tests for Vue application in dev mode (#31415)
- linter: handle
ng-package.json
file with nolib.entryFile
in@nx/enforce-module-boundaries
rule (#31360) - linter: fix line endings handling in '@nx/eslint:convert-to-flat-config' generator (#31043)
- module-federation: enhance remote entry handling with query parameters in paths (#30615, #30602)
- node: add project name sanitization for Docker commands. (#31461, #31421)
- nx-dev: only track analytics in prod envs (#31367)
- remix: update setup-tailwind generator to correct import statements (#30599, #30343)
- rspack: fix issue with optimization options in rspack config (#31337, #31268, #30292)
- rspack: ensure nest applications generated correctly #31204 (#31424, #31204)
- vite: bump @analogjs/vite-plugin-angular to 1.16.x (#31317)
- vite: add ajv dependency for non-pnpm package managers (#31413)
- vite: resolve project-specific tsconfig before workspace fallback (#31423, #28945)
- webpack: add support for retrieving all transitive non-buildable dependencies (#31343)
❤️ Thank You
- Brandon Roberts @brandonroberts
- Colum Ferry @Coly010
- Emily Xiong @xiongemi
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Johann Wagner @konqi
- Juri Strumpflohner @juristr
- laney
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
- Terry @Teamop
21.2.0-beta.1
21.2.0-beta.1 (2025-05-26)
🚀 Features
- angular: add support for rspack module federation (#31231)
- angular: support angular cli v20.0.0-rc.3 (#30715)
- nx-dev: AI landing page (#31310)
🩹 Fixes
- core: handle killing child processes of continuous tasks on Windows (#31296, #31235)
- core: do not hide task list with run-many if there is only 1 task (#31324)
- gradle: change run and bootRun to cacheable false (#31287)
- linter: speed up inferred plugin node processing (#31281)
- module-federation: use runtimeChunk false when not in dev mode (#31256, #30637, #31114)
- react: add missing dependency when generating a react lib that has testing (#31308)
- react: routing option to library generator (#31328, #30721)
- storybook: improve speed of storybook plugin (#31277, #22953, #31276)
❤️ Thank You
- Charlie Croom
- Colum Ferry @Coly010
- Emily Xiong @xiongemi
- Jack Hsu @jaysoo
- Jonathan Cammisuli @Cammisuli
- Juri Strumpflohner @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Miroslav Jonaš @meeroslav
- Nicholas Cunningham @ndcunningham
21.1.2
21.1.1
21.1.0
21.1.0 (2025-05-20)
🚀 Features
- angular: handle prerender and appshell in covert to rspack (#31210)
- angular: migrate to angular rspack 21 (#31216)
- core: focus single tasks (#31159)
- core: run parallel based on the number of cpu cores (#31011)
- core: add nx console messaging to TUI (#31148)
- core: update getTouchedProjectsFromLockFile to detect which projects were changed from pnpm lock file diff (#31091, #29986)
- core: add ai rule files to gitignore (#31238)
- devkit: allow requiring cts config files (#31103)
- nx-dev: replace monorepo world link with office hours (3f5fd896a1)
- rspack: upgrade to version 1.3.8 (#31070)
- vite: add ajv dev dependency for vite-plugin-dts (#31107)
🩹 Fixes
- angular: install
@angular/build
when using vitest test runner (#31169, #30646) - core: send up and down arrows to pty in interactive mode (#31084)
- core: fail nx release cli when publish step fails (#31088)
- core: explicitly cleanup forked process task runner (#31106)
- core: add keepExistingVersions to jest option to preserve dependency versions (#30652)
- core: run script should exit the process when kill signals are r… (#31109)
- core: resolve excessive CPU consumption via child_process.rs (#31110)
- core: clearer tui colors on light themes (#31095)
- core: tui should not exit when underlying process is cancelled (#31112)
- core: tui summary should capture more terminal outputs (#31113)
- core: replace posix.relative with relative for path resolution (#30783)
- core: handle process killing more robustly (#31131)
- core: only cleanup db connection on exit (#31137)
- core: Update React,Vue and Node generators applications for CNW (#31059)
- core: simplify action dispatch, use mutex locking, and avoid unnecessary clones (#31157)
- core: show all native logs for debug mode (#31154)
- core: handle npm scope when matching project substring (#31160)
- core: change default native logging to "OFF" (#31161)
- core: do not follow symlinks when creating remote cache tarball (#31138, #31085)
- core: improve pinned tasks annotation on narrow width (#31175)
- core: make running a single task more transparent (#31163)
- core: do not set tasks which cannot be interactive to interactive (#31240)
- core: remove engines field, improve compatibility documentation (#31245)
- core: ensure that global nx works with dot-nx workspace after init (#31249)
- core: Update e2e nightly test to not hang (#31218)
- core: record task runs via the queue (#31253)
- core: restore older nx core migrations for repair (#31254)
- core: prefer vertical layout categorically if there are less tha… (#31221)
- docs: typo in introduction.md (#31145)
- esbuild: update peerDep range (#30402, #30167, #30009, #30370)
- gradle: specify idle timeout for gradle batch runner (#31009)
- gradle: fix gradle tests (#30879)
- gradle: return success false for failed task (#31178)
- gradle: make ci inputs same as test inputs (#31198)
- js: handle
${configDir}
in tsconfig files when inferring tasks (#31098, #30883) - linter: handle the flat config in workspace rule generators (#29253, #29252)
- module-federation: generalize the check of the remote project specified in the buildTarget (#31211, #30808)
- nextjs: Update glob for cache output (#31177)
- nx-dev: webinar list page shows event date (#30953)
- nx-dev: Add docs for disableChecksum option for s3-cache (#31199)
❤️ Thank You
- Colum Ferry @Coly010
- Craigory Coppola @AgentEnder
- Emily Xiong @xiongemi
- Ian Luca @ianldgs
- Isaac Mann @isaacplmann
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli @Cammisuli
- Jonathan Gelin @jogelin
- Juri @juristr
- laney
- Leosvel Pérez Espinosa @leosvelperez
- Nicholas Cunningham @ndcunningham
- Nicolas Beaussart @beaussan
- Nicolas Marien
- pawel-twardziak
- Stanislas Bernard
- Tyler Hendrickson @hendrickson-tyler
- Yiheng @ianzone
21.1.0-beta.2
21.1.0-beta.2 (2025-05-17)
🚀 Features
- angular: migrate to angular rspack 21 (#31216)
- core: update getTouchedProjectsFromLockFile to detect which projects were changed from pnpm lock file diff (#31091, #29986)
- core: add ai rule files to gitignore (#31238)
- devkit: allow requiring cts config files (#31103)
- vite: add ajv dev dependency for vite-plugin-dts (#31107)
🩹 Fixes
- core: do not set tasks which cannot be interactive to interactive (#31240)
- core: remove engines field, improve compatibility documentation (#31245)
- core: ensure that global nx works with dot-nx workspace after init (#31249)
- core: Update e2e nightly test to not hang (#31218)
- core: record task runs via the queue (#31253)
- core: restore older nx core migrations for repair (#31254)
- core: prefer vertical layout categorically if there are less tha… (#31221)
- linter: handle the flat config in workspace rule generators (#29253, #29252)
❤️ Thank You
- Colum Ferry @Coly010
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli @Cammisuli
- laney
- Nicholas Cunningham @ndcunningham
- Nicolas Marien
- pawel-twardziak
21.0.4
21.0.4 (2025-05-21)
🚀 Features
- nx-dev: replace monorepo world link with office hours (7e67c810f4)
🩹 Fixes
- angular: install
@angular/build
when using vitest test runner (#31169, #30646) - core: Update React,Vue and Node generators applications for CNW (#31059)
- core: simplify action dispatch, use mutex locking, and avoid unnecessary clones (#31157)
- core: show all native logs for debug mode (#31154)
- core: handle npm scope when matching project substring (#31160)
- core: change default native logging to "OFF" (#31161)
- core: do not follow symlinks when creating remote cache tarball (#31138, #31085)
- core: improve pinned tasks annotation on narrow width (#31175)
- core: remove engines field, improve compatibility documentation (#31245)
- core: ensure that global nx works with dot-nx workspace after init (#31249)
- core: Update e2e nightly test to not hang (#31218)
- core: record task runs via the queue (#31253)
- core: restore older nx core migrations for repair (#31254)
- docs: typo in introduction.md (#31145)
- esbuild: update peerDep range (#30402, #30167, #30009, #30370)
- gradle: return success false for failed task (#31178)
- gradle: make ci inputs same as test inputs (#31198)
- linter: handle the flat config in workspace rule generators (#29253, #29252)
- module-federation: generalize the check of the remote project specified in the buildTarget (#31211, #30808)
- nextjs: Update glob for cache output (#31177)
- nx-dev: Add docs for disableChecksum option for s3-cache (#31199)
❤️ Thank You
- Emily Xiong @xiongemi
- Ian Luca @ianldgs
- Jack Hsu @jaysoo
- James Henry @JamesHenry
- Jason Jean @FrozenPandaz
- Jonathan Cammisuli @Cammisuli
- Jonathan Gelin @jogelin
- Juri @juristr
- Leosvel Pérez Espinosa @leosvelperez
- Nicholas Cunningham @ndcunningham
- pawel-twardziak
- Stanislas Bernard
- Tyler Hendrickson @hendrickson-tyler