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.2.0-canary.20250604-283ec764 Jun 2025pre-release

    Nothing published for this version

  2. 21.2.0-canary.20250603-88c51963 Jun 2025pre-release

    Nothing published for this version

  3. 21.2.0-canary.20250530-b51676a30 May 2025pre-release

    Nothing published for this version

  4. 21.2.0-canary.20250529-c8a6ffb29 May 2025pre-release

    Nothing published for this version

  5. 21.2.0-canary.20250528-257245528 May 2025pre-release

    Nothing published for this version

  6. 21.2.0-canary.20250527-4a9484127 May 2025pre-release

    Nothing published for this version

  7. 21.2.0-canary.20250524-e2b3aca24 May 2025pre-release

    Nothing published for this version

  8. 21.2.0-canary.20250523-560a53e23 May 2025pre-release

    Nothing published for this version

  9. 21.2.0-canary.20250522-7e0719c22 May 2025pre-release

    Nothing published for this version

  10. 21.2.0-canary.20250521-a52a43521 May 2025pre-release

    Nothing published for this version

  11. 21.2.0-beta.510 Jun 2025pre-release
    Release notes

    21.2.0-beta.5 (2025-06-10)

    🩹 Fixes

    • core: scope native logging to nx module by default (#31530)
    • gradle: fix gradle test running gaps (#31313)
    • js: enhance TypeScript transformer loading to support function-based plugins (#31443, #31411)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Emily Xiong @xiongemi
    • Jason Jean @FrozenPandaz
    Open source →
  12. 21.2.0-beta.410 Jun 2025pre-release
    Release notes

    21.2.0-beta.4 (2025-06-10)

    🩹 Fixes

    • core: remove log_error function and standardize logging (#31515)

    ❤️ Thank You

    • Jason Jean @FrozenPandaz
    Open source →
  13. 21.2.0-beta.39 Jun 2025pre-release
    Release notes

    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
    Open source →
  14. 21.2.0-beta.25 Jun 2025pre-release
    Release notes

    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 no lib.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
    Open source →
  15. 21.2.0-beta.126 May 2025pre-release
    Release notes

    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
    Open source →
  16. 21.1.36 Jun 2025
    Release notes

    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 no lib.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
    Open source →
  17. 21.1.224 May 2025
    Release notes

    21.1.2 (2025-05-24)

    🩹 Fixes

    • core: do not hide task list with run-many if there is only 1 task (#31324)

    ❤️ Thank You

    • Jonathan Cammisuli @Cammisuli
    Open source →
  18. 21.1.121 May 2025
    Release notes

    21.1.1 (2025-05-21)

    🩹 Fixes

    ❤️ Thank You

    • Colum Ferry @Coly010
    Open source →
  19. 21.1.020 May 2025
    Release notes

    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
    Open source →
  20. 21.1.0-canary.20250520-da9d84c20 May 2025pre-release

    Nothing published for this version

  21. 21.1.0-canary.20250517-c92b4a317 May 2025pre-release

    Nothing published for this version

  22. 21.1.0-canary.20250516-7db44a816 May 2025pre-release

    Nothing published for this version

  23. 21.1.0-canary.20250515-81ecb2215 May 2025pre-release

    Nothing published for this version

  24. 21.1.0-canary.20250514-889dee014 May 2025pre-release

    Nothing published for this version

  25. 21.1.0-canary.20250513-8cf4b5513 May 2025pre-release

    Nothing published for this version

  26. 21.1.0-canary.20250510-cbb261910 May 2025pre-release

    Nothing published for this version

  27. 21.1.0-canary.20250509-8c50b7f9 May 2025pre-release

    Nothing published for this version

  28. 21.1.0-canary.20250508-98d33548 May 2025pre-release

    Nothing published for this version

  29. 21.1.0-canary.20250507-30a77097 May 2025pre-release

    Nothing published for this version

  30. 21.1.0-canary.20250506-72a0ef56 May 2025pre-release

    Nothing published for this version

  31. 21.1.0-beta.217 May 2025pre-release
    Release notes

    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
    Open source →
  32. 21.1.0-beta.114 May 2025pre-release
    Release notes

    21.1.0-beta.1 (2025-05-14)

    🚀 Features

    • angular: handle prerender and appshell in covert to rspack (#31210)
    • core: add nx console messaging to TUI (#31148)

    🩹 Fixes

    • esbuild: update peerDep range (#30402, #30167, #30009, #30370)
    • gradle: make ci inputs same as test inputs (#31198)
    • module-federation: generalize the check of the remote project specified in the buildTarget (#31211, #30808)
    • nx-dev: Add docs for disableChecksum option for s3-cache (#31199)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Emily Xiong @xiongemi
    • Jonathan Cammisuli @Cammisuli
    • Jonathan Gelin @jogelin
    • Nicholas Cunningham @ndcunningham
    • Tyler Hendrickson @hendrickson-tyler
    Open source →
  33. 21.1.0-beta.013 May 2025pre-release
    Release notes

    21.1.0-beta.0 (2025-05-13)

    🚀 Features

    • core: focus single tasks (#31159)
    • core: run parallel based on the number of cpu cores (#31011)
    • nx-dev: replace monorepo world link with office hours (3f5fd896a1a)
    • rspack: upgrade to version 1.3.8 (#31070)

    🩹 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)
    • docs: typo in introduction.md (#31145)
    • gradle: specify idle timeout for gradle batch runner (#31009)
    • gradle: fix gradle tests (#30879)
    • gradle: return success false for failed task (#31178)
    • js: handle ${configDir} in tsconfig files when inferring tasks (#31098, #30883)
    • nextjs: Update glob for cache output (#31177)
    • nx-dev: webinar list page shows event date (#30953)

    ❤️ 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
    • Juri @juristr
    • Leosvel Pérez Espinosa @leosvelperez
    • Nicholas Cunningham @ndcunningham
    • Nicolas Beaussart @beaussan
    • Stanislas Bernard
    • Yiheng @ianzone
    Open source →
  34. 21.0.421 May 2025
    Release notes

    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
    Open source →
  35. 21.0.4-beta.010 May 2025pre-release
    Release notes

    21.0.4-beta.0 (2025-05-10)

    🚀 Features

    • core: focus single tasks (#31159)

    🩹 Fixes

    • 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)
    • docs: typo in introduction.md (#31145)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • Ian Luca @ianldgs
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • Jonathan Cammisuli @Cammisuli
    • Nicholas Cunningham @ndcunningham
    • Stanislas Bernard
    Open source →
  36. 21.0.38 May 2025
    Release notes

    21.0.3 (2025-05-08)

    🩹 Fixes

    • 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)
    • gradle: specify idle timeout for gradle batch runner (#31009)
    • gradle: fix gradle tests (#30879)

    ❤️ Thank You

    • Emily Xiong @xiongemi
    • Jason Jean @FrozenPandaz
    • Jonathan Cammisuli @Cammisuli
    Open source →
  37. 21.0.27 May 2025
    Release notes

    21.0.2 (2025-05-07)

    🩹 Fixes

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

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • James Henry @JamesHenry
    • Jason Jean @FrozenPandaz
    Open source →
  38. 21.0.17 May 2025
    Release notes

    21.0.1 (2025-05-07)

    🚀 Features

    • rspack: upgrade to version 1.3.8 (#31070)

    🩹 Fixes

    • 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)
    • js: handle ${configDir} in tsconfig files when inferring tasks (#31098, #30883)
    • nx-dev: webinar list page shows event date (#30953)

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Isaac Mann @isaacplmann
    • James Henry @JamesHenry
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    • Nicholas Cunningham @ndcunningham
    • Nicolas Beaussart @beaussan
    Open source →
  39. 21.0.05 May 2025
    Release notes

    21.0.0 (2025-05-05)

    🚀 Features

    • angular: update angular-rspack to 20.7 (#30737)
    • ⚠️ angular: remove deprecated functionalities for v21 (#30769)
    • core: introduce continuous tasks (#29750, #29025)
    • core: share continuous tasks (#29901)
    • core: add the experimental Terminal UI for tasks (#30565)
    • core: enable dte to execute continuous tasks (#29993)
    • core: add shared status for tui (#30679)
    • core: clean up unneeded continuous tasks after tasks are done (#30746)
    • core: stream task output for all tasks except for direct output… (#30822)
    • core: add flaky task detection to tui summary (#30835)
    • core: allow executors to specify if they are continuous (#30821)
    • ⚠️ core: remove usage of cli property from migration definitions (#30855)
    • ⚠️ core: remove deprecated readWorkspaceConfig (#30868)
    • core: add enter and q keybindings (#30786)
    • ⚠️ core: drop support for create nodes v1 in favor of only calling create nodes v2 (#30616)
    • ⚠️ core: remove legacy cache flag from nx.json (#30787)
    • core: disable tui when output style is set to an incompatible style (#30873)
    • ⚠️ core: drop support for node versions prior to 20.19.0 (#30818)
    • core: support reading NX_TUI_AUTO_EXIT env var (#30971)
    • core: bump devkit support range and remove some deprecated APIs (#30840)
    • core: add continuous option to targets for Detox, Expo, and React Native (#30988)
    • ⚠️ core: remove outputStyle=compact (#31016)
    • gradle: add batch runner (#30457)
    • gradle: set gradle task continuous for bootRun (#30931)
    • graph: Create Migrate UI (#30734)
    • graph: add undo migration option when one is pending approval (#30878)
    • graph: show next steps for successful migrations (307c45542a)
    • graph: show next steps for successful migrations (#30934)
    • java: add gradle kotlin plugin (#29464)
    • js: infer continuous for watch-deps task (#29976)
    • linter: add support for package based secondary entry points (#30809, #18552)
    • misc: remove generation of target defaults for atomized e2e tasks (#30730)
    • misc: remove migrations prior to v19 in preparation for v21 (#30839)
    • module-federation: add continuous tasks support to react rspack (#30644)
    • node: generate new apps with continuous: true (#30148)
    • nuxt: enable continuous tasks (#30925)
    • nx-dev: add React landing page (#30612)
    • nx-dev: add course preview component (4f8b407a75)
    • nx-dev: tutorial landing page and improvements (#30757)
    • nx-dev: add conformance rule to verify blog post cover images (5651270b33)
    • react: undeprecate svgr option for Next.js apps since --turbo supports it (#30909)
    • react: replace deprecated babel classProperties.loose option in .babelrc files (#30912)
    • react-native: update executor and schema files for expo and react-native to be continuous (#30985)
    • ⚠️ release: useLegacyVersioning is false by default, migrate config (#30838)
    • ⚠️ release: support gitlab releases (#30802)
    • remix: add continuous task support (#29905)
    • ⚠️ remix: remove deprecated static-serve target name from inferred targets (#30982)
    • rspack: add continous inference support (#29973)
    • rspack: use custom WriteIndexHtmlPlugin to handle variable interpolation (#30805)
    • storybook: infer continuous tasks for storybook serve and serve-static (#30069)
    • testing: add continuous tasks support for jest e2e with node (#30675)
    • testing: support continuous tasks (#30632)
    • ⚠️ testing: remove deprecated getJestProjects (#30844)
    • ⚠️ testing: remove tsConfig option from the @nx/jest:jest executor (#30888)
    • ⚠️ testing: remove tsConfig and copyFiles options from the @nx/cypress:cypress executor (#30870)
    • vite: infer continuous tasks for dev (#30043)
    • webpack: add continuous inference support (#29974)
    • webpack: set default sassImplementation to sass-embedded (#30580)
    • webpack: remove isolatedConfig option for @nx/webpack:webpack (#30910)

    🩹 Fixes

    • check if dependencies & devDependencies exist before deleting dep (#30224, #30222)
    • angular: remove deprecated standaloneConfig from generators (#30578)
    • angular: handle ssr with convert-to-rspack (#30752)
    • angular: convert-to-rspack correctly migrating existing custom webpack configs (#30778)
    • angular: convert-to-rspack should ensure zone.js is not treated as local file (#30966)
    • core: schedule tasks and release waiting threads when continuous task is already running (#30673)
    • core: improve tui exit consistency and summary (#30678)
    • core: use dev tty for crossterm (#30696)
    • core: only register forced shutdown when tui is enabled (#30735)
    • core: improve flaky ci test (#30738)
    • core: disable tui when CI=true (#30754)
    • core: migrate-ui-api should always use its own migrate module (#30779)
    • core: wait for exit before getting terminal output (#30816)
    • core: fix issue with summary missing outputs (#30819)
    • core: allow disabling output streaming with NX_STREAM_OUTPUT (#30834)
    • core: add continuous to the project.json schema (#30853)
    • core: ensure task environments are processed properly in dte (#30862)
    • core: handle skipped tasks and trigger finished state (#30864)
    • core: do not clone screen on every render loop of the TUI (#30872)
    • core: error message when failing to fetch migrations is no good (#30874)
    • core: quick fix to support trailing commas when reading hoisted … (#29436)
    • core: properly print errors coming from js when tui is enabled (#30885)
    • core: tui summary should handle in progress tasks properly (#30905)
    • core: throw errors when task graph has invalid continuous tasks (#30924)
    • core: kill child processes when pseudo terminal shutsdown (#30935)
    • core: write keybindings with control to terminal panes in intera… (#30938)
    • core: dont cache default plugins as all plugins if loading plugins fails (#30927)
    • core: fix logging when directory does not exist (#30944)
    • ⚠️ core: respect packageManager field in package.json when detecting version (#29249)
    • core: fix terminal output for non-tui (#30957)
    • core: include nx version in native file cache (#30963, #30940, #29184)
    • core: error when restoring http cache with no outputs (#30961)
    • core: return results after NodeChildProcessWithNonDirectOutput has already exited (#30943)
    • core: don't display fork script path in tui (#30970)
    • core: prioritize --output-style flag over tui env vars (#30969)
    • core: use process#kill instead of tree-kill for windows and macos (#30976)
    • core: Disable the macOS job to prevent PRs from being blocked by its long runtime. (#30984)
    • core: send signals when killing child process on unix (#30987)
    • core: fix windows native build (#30990)
    • core: run discrete tasks using batches if possible (#30991)
    • core: improve tui task_list bottom section responsive design (#30993)
    • core: update fork task runner so it propagates exit signals (#30998)
    • core: remove unnecessary corepack defaults (#30992)
    • core: skip vt100 parsing if tui disabled (#31010)
    • core: tui summary should not show canceled during run-one because tasks are skipped (#31014)
    • core: ensure the terminal is restored when cloud exits (#31013)
    • core: Update nightly tests to work with continuous local-registry (#31007)
    • core: enable E2E tests for macOS in CI workflow (#30986)
    • core: reset should clear cloud light client (#31021)
    • core: nx init should configure plugins for encapsulated workspaces (#31020)
    • core: more tui summary updates and unit tests (#31019)
    • core: exit the command with sigint if it is interrupted (#31028)
    • core: Disable e2e matrix as macos is still hanging at install (#31041)
    • core: tui summary should show cancelled when interrupting dev server (#31042)
    • core: q should exit tui immediately if all tasks complete (#31040)
    • core: improve tui selected task contrast (#31039)
    • core: update ci-workflow generator package manager installation (#31018)
    • core: switch to tui-term fork to support dimmed content (#31044)
    • core: kill tasks run via run-commands (#31045)
    • gradle: make sure v1 hash file is named differently to prevent compatability errors (#30846)
    • gradle: add gradle migration to change ciTargetName (#30965)
    • gradle: fix workflow to run assemble check with batch (#31022)
    • graph: ensure deps from graph-client->migrate-ui exists so taliwind styles are compiled correctly (#30762)
    • graph: disable primary CTA for Migrate UI when approval is required first (#30836)
    • graph: make migrate ui future migration circles cleaner (#30898)
    • js: remove check that ts plugin is used for ts sync generator (#30743)
    • linter: remove empty entry in typescript eslint flat config (#30727, #30725)
    • ⚠️ misc: only provide default value for object properties if object already has value (#28838, #23153)
    • module-federation: remove disabling runtimeChunk (#30637, #9582)
    • module-federation: check the remote project targets for buildTarget to use #30808 (#30867, #30808)
    • nx-dev: refer to the youtube video instead of storing the videos… (#30739)
    • nx-dev: toc should only include headings from the article body (4dbc3c7156)
    • nx-dev: update blog posts with avif cover images (d6ea3ab45f)
    • react: mark react-router dev/start targets as continuous (#30776)
    • react: migration for babel supports configs that do not use @nx/react/babel (#30962)
    • release: ensure generatorOptions and rootVersionActionsOptions are passed to updateLockfile function (#30796)
    • release: ensure versionData is always populated even when no bumps (#30866)
    • release: only error on missing manifestsToUpdate if a project is being directly processed (#31004)
    • repo: don't cancel running jobs on master when new branch merged (#30871)
    • testing: fix cypress and playwright atomized targetDefaults so they match correctly (#30717, #28842)
    • testing: use correct server process reference when killing the server in the cypress preset (#30994)
    • testing: ignore test outputs from playwright when linting (#31015)
    • vue: install @typescript-eslint/parser when generating project using it (#31008)

    ⚠️ Breaking Changes

    • ⚠️ core: remove outputStyle=compact (#31016)
    • remix: Remove deprecated static-serve target name from Remix
    • misc: Currently if an executor's schema provides some default
    • core: We are updating our minimum node version to 20.19.0
    • ⚠️ core: respect packageManager field in package.json when detecting version (#29249)
    • ⚠️ release: support gitlab releases (#30802)
    • testing: The previously deprecated and unused tsConfig and
    • testing: The previously deprecated and unused tsConfig option
    • ⚠️ core: remove legacy cache flag from nx.json (#30787)
    • ⚠️ core: drop support for create nodes v1 in favor of only calling create nodes v2 (#30616)
    • core: The previously deprecated readWorkspaceConfig
    • core: The cli property from migration generator definitions
    • testing: The previously deprecated getJestProjects function
    • ⚠️ release: useLegacyVersioning is false by default, migrate config (#30838)
    • angular: Remove the deprecated data persistence operators

    ❤️ Thank You

    • Altan Stalker
    • Colum Ferry
    • Craigory Coppola @AgentEnder
    • Emily Xiong
    • François
    • Isaac Mann @isaacplmann
    • Jack Hsu
    • Jacob Ley @JacobLey
    • James Henry @JamesHenry
    • Jason Jean @FrozenPandaz
    • Jonathan Cammisuli @Cammisuli
    • Juri
    • Leosvel Pérez Espinosa
    • MaxKless @MaxKless
    • Mike Hartington @mhartington
    • Miroslav Jonaš
    • Nicholas Cunningham @ndcunningham
    • Thomas Dekiere
    Open source →
  40. 21.0.0-rc.45 May 2025pre-release
    Release notes

    21.0.0-rc.4 (2025-05-05)

    🩹 Fixes

    • core: exit the command with sigint if it is interrupted (#31028)
    • core: Disable e2e matrix as macos is still hanging at install (#31041)
    • core: tui summary should show cancelled when interrupting dev server (#31042)
    • core: q should exit tui immediately if all tasks complete (#31040)
    • core: improve tui selected task contrast (#31039)
    • core: update ci-workflow generator package manager installation (#31018)
    • core: switch to tui-term fork to support dimmed content (#31044)
    • core: kill tasks run via run-commands (#31045)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • James Henry @JamesHenry
    • Jason Jean @FrozenPandaz
    • Nicholas Cunningham @ndcunningham
    Open source →
  41. 21.0.0-rc.33 May 2025pre-release
    Release notes

    21.0.0-rc.3 (2025-05-03)

    🚀 Features

    • ⚠️ core: remove outputStyle=compact (#31016)

    🩹 Fixes

    • core: remove unnecessary corepack defaults (#30992)
    • core: skip vt100 parsing if tui disabled (#31010)
    • core: tui summary should not show canceled during run-one because tasks are skipped (#31014)
    • core: ensure the terminal is restored when cloud exits (#31013)
    • core: Update nightly tests to work with continuous local-registry (#31007)
    • core: enable E2E tests for macOS in CI workflow (#30986)
    • core: reset should clear cloud light client (#31021)
    • core: nx init should configure plugins for encapsulated workspaces (#31020)
    • core: more tui summary updates and unit tests (#31019)
    • gradle: fix workflow to run assemble check with batch (#31022)
    • release: only error on missing manifestsToUpdate if a project is being directly processed (#31004)
    • testing: ignore test outputs from playwright when linting (#31015)
    • vue: install @typescript-eslint/parser when generating project using it (#31008)

    ⚠️ Breaking Changes

    • ⚠️ core: remove outputStyle=compact (#31016)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • Emily Xiong @xiongemi
    • Jack Hsu @jaysoo
    • James Henry @JamesHenry
    • Leosvel Pérez Espinosa @leosvelperez
    • Nicholas Cunningham @ndcunningham
    Open source →
  42. 21.0.0-rc.22 May 2025pre-release
    Release notes

    21.0.0-rc.2 (2025-05-02)

    🩹 Fixes

    • core: fix windows native build (#30990)
    • core: run discrete tasks using batches if possible (#30991)
    • core: improve tui task_list bottom section responsive design (#30993)
    • core: update fork task runner so it propagates exit signals (#30998)
    • testing: use correct server process reference when killing the server in the cypress preset (#30994)

    ❤️ Thank You

    • Jack Hsu @jaysoo
    • James Henry @JamesHenry
    • Jason Jean @FrozenPandaz
    • Leosvel Pérez Espinosa @leosvelperez
    Open source →
  43. 21.0.0-rc.12 May 2025pre-release
    Release notes

    21.0.0-rc.1 (2025-05-02)

    🚀 Features

    • core: add continuous option to targets for Detox, Expo, and React Native (#30988)

    🩹 Fixes

    • core: send signals when killing child process on unix (#30987)
    • core: fix windows native build (#30990)
    • core: run discrete tasks using batches if possible (#30991)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • Jason Jean @FrozenPandaz
    • Nicholas Cunningham @ndcunningham
    Open source →
  44. 21.0.0-rc.01 May 2025pre-release
    Release notes

    21.0.0-rc.0 (2025-05-01)

    🚀 Features

    • ⚠️ core: drop support for node versions prior to 20.19.0 (#30818)
    • core: support reading NX_TUI_AUTO_EXIT env var (#30971)
    • core: bump devkit support range and remove some deprecated APIs (#30840)
    • gradle: set gradle task continuous for bootRun (#30931)
    • react-native: update executor and schema files for expo and react-native to be continuous (#30985)
    • ⚠️ remix: remove deprecated static-serve target name from inferred targets (#30982)

    🩹 Fixes

    • angular: convert-to-rspack should ensure zone.js is not treated as local file (#30966)
    • core: don't display fork script path in tui (#30970)
    • core: prioritize --output-style flag over tui env vars (#30969)
    • core: use process#kill instead of tree-kill for windows and macos (#30976)
    • core: Disable the macOS job to prevent PRs from being blocked by its long runtime. (#30984)
    • gradle: add gradle migration to change ciTargetName (#30965)
    • graph: make migrate ui future migration circles cleaner (#30898)
    • ⚠️ misc: only provide default value for object properties if object already has value (#28838, #23153)
    • react: migration for babel supports configs that do not use @nx/react/babel (#30962)

    ⚠️ Breaking Changes

    • remix: Remove deprecated static-serve target name from Remix
    • misc: Currently if an executor's schema provides some default
    • core: We are updating our minimum node version to 20.19.0

    ❤️ Thank You

    • Colum Ferry @Coly010
    • Craigory Coppola @AgentEnder
    • Emily Xiong @xiongemi
    • Jack Hsu @jaysoo
    • Jason Jean @FrozenPandaz
    • MaxKless @MaxKless
    • Nicholas Cunningham @ndcunningham
    Open source →
  45. 21.0.0-canary.20250503-675e6ed3 May 2025pre-release

    Nothing published for this version

  46. 21.0.0-canary.20250502-110614d2 May 2025pre-release

    Nothing published for this version

  47. 21.0.0-canary.20250501-8f503581 May 2025pre-release

    Nothing published for this version

  48. 21.0.0-canary.20250430-07b881d30 Apr 2025pre-release

    Nothing published for this version

  49. 21.0.0-canary.20250429-cf4a1f329 Apr 2025pre-release

    Nothing published for this version

  50. 21.0.0-canary.20250426-da4f55b26 Apr 2025pre-release

    Nothing published for this version

  51. 21.0.0-canary.20250425-ee097a825 Apr 2025pre-release

    Nothing published for this version

  52. 21.0.0-canary.20250424-e23b25f24 Apr 2025pre-release

    Nothing published for this version

  53. 21.0.0-canary.20250423-16fc55123 Apr 2025pre-release

    Nothing published for this version

  54. 21.0.0-canary.20250422-8619c1d22 Apr 2025pre-release

    Nothing published for this version

  55. 21.0.0-canary.20250419-8619c1d19 Apr 2025pre-release

    Nothing published for this version

  56. 21.0.0-canary.20250418-8619c1d18 Apr 2025pre-release

    Nothing published for this version

  57. 21.0.0-canary.20250416-caa26a716 Apr 2025pre-release

    Nothing published for this version

  58. 21.0.0-canary.20250206-8bd0bcd6 Feb 2025pre-release

    Nothing published for this version

  59. 21.0.0-canary.20250205-45d51405 Feb 2025pre-release

    Nothing published for this version

  60. 21.0.0-beta.121 May 2025pre-release
    Release notes

    21.0.0-beta.12 (2025-05-01)

    🚀 Features

    • core: disable tui when output style is set to an incompatible style (#30873)
    • graph: show next steps for successful migrations (#30934)
    • nx-dev: add conformance rule to verify blog post cover images (5651270b33)
    • ⚠️ release: support gitlab releases (#30802)

    🩹 Fixes

    • core: write keybindings with control to terminal panes in intera… (#30938)
    • core: dont cache default plugins as all plugins if loading plugins fails (#30927)
    • core: fix logging when directory does not exist (#30944)
    • ⚠️ core: respect packageManager field in package.json when detecting version (#29249)
    • core: fix terminal output for non-tui (#30957)
    • core: include nx version in native file cache (#30963)
    • core: error when restoring http cache with no outputs (#30961)
    • core: return results after NodeChildProcessWithNonDirectOutput has already exited (#30943)
    • nx-dev: update blog posts with avif cover images (d6ea3ab45f)

    ⚠️ Breaking Changes

    • ⚠️ core: respect packageManager field in package.json when detecting version (#29249)
    • ⚠️ release: support gitlab releases (#30802)

    ❤️ Thank You

    • Craigory Coppola @AgentEnder
    • Jack Hsu @jaysoo
    • Jacob Ley @JacobLey
    • James Henry @JamesHenry
    • Jason Jean @FrozenPandaz
    • Juri @juristr
    Open source →