Releases: nrwl/nx
Releases · nrwl/nx
22.2.0-beta.1
22.2.0-beta.1 (2025-11-27)
🚀 Features
- nuxt: support nuxt v4 (#33611)
- storybook: support storybook 10.1 (#33637)
- vite: add vitest 4 migration for users using @nx/vite (#33630)
🩹 Fixes
- bundling: replace rollup-plugin-copy with nx copy assets plugin (#33601, #32398)
- core: kill child process tree in different running tasks (#33636, #32438, #33460)
- linter: base eslint config should ignore out-tsc directories (#33639)
- nextjs: make migration to next 16 optional (#33627)
- storybook: remove upper bound of migration requires (#33613)
❤️ Thank You
- Colum Ferry @Coly010
- Coly010 @Coly010
- Jack Hsu @jaysoo
- jaysoo @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
22.1.3
22.1.3 (2025-11-27)
🚀 Features
- nextjs: add migration to add AI instructions for upgrading to Next 16 (#33608)
🩹 Fixes
- bundling: replace rollup-plugin-copy with nx copy assets plugin (#33601, #32398)
- core: kill child process tree in different running tasks (#33636, #32438, #33460)
- linter: base eslint config should ignore out-tsc directories (#33639)
- nextjs: make migration to next 16 optional (#33627)
❤️ Thank You
- Colum Ferry @Coly010
- Coly010 @Coly010
- Jack Hsu @jaysoo
- jaysoo @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
21.6.10
21.6.10 (2025-11-27)
🩹 Fixes
- bundling: replace rollup-plugin-copy with nx copy assets plugin (#33601, #32398)
- core: kill child process tree in different running tasks (#33636, #32438, #33460)
- storybook: remove STORYBOOK_PROJECT_ROOT when running automigrate to prevent hanging (#33567, #32492)
❤️ Thank You
- Jack Hsu @jaysoo
- jaysoo @jaysoo
- Leosvel Pérez Espinosa @leosvelperez
22.2.0-beta.0
22.2.0-beta.0 (2025-11-25)
🚀 Features
- core: add multiple Nx version detection to nx report (#33599)
- linter: add util to load eslint rules from a directory (#33543)
- nextjs: add migration to add AI instructions for upgrading to Next 16 (#33608)
- nx-cloud: prepend nx version to stats metadata (#33568)
🩹 Fixes
- core: don't presume a task is long running if its marked cacheable (#33545, #32610)
- core: daemon command should exit at end (#33547)
- core: provide error when nested graph construction would occur invoked during createNodes (#33541, #29618)
- core: filter out automated release commits in getCommitsRelevantToProjects (#33482)
- core: make daemon socket path unique per process to prevent race condition (#33580, #33491)
- core: use nx-mcp for older nx versions instead of nx mcp (#33553)
- core: propagate continuous task failures to dependent tasks (#33492)
- graph: align exclude flag with others by using findMatchingProjects (#33550)
- graph: surface task graph client error via error toast (#33600)
- js: ensure copy-workspace-modules copies transitive workspace dependencies (#33570)
- linter: handle various flat config override structures (#33548, #31796)
- nest: set moduleResolution to node to prevent TS5095 error (#33607, #33589)
- node: set generatePackageJson:false for TS Solution workspaces (#33606)
- react: exclude tailwind from CSS modules syntax in component generator (#33574)
- release: ensure emoji is not repeated in breaking changes summary (#33605)
- storybook: remove STORYBOOK_PROJECT_ROOT when running automigrate to prevent hanging (#33567, #32492)
- testing: remove declare global wrapper from cypress commands.ts template (#33573, #32930)
- vite: generate .mts config files to force ESM (#33518)
❤️ Thank You
- AgentEnder @AgentEnder
- Chau Tran @nartc
- Claude
- Colum Ferry @Coly010
- Coly010 @Coly010
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Kasper Christensen @fALKENdk
- Laney Pouzet
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
22.1.2
22.1.2 (2025-11-25)
🚀 Features
- core: add multiple Nx version detection to nx report (#33599)
🩹 Fixes
- core: filter out automated release commits in getCommitsRelevantToProjects (#33482)
- core: make daemon socket path unique per process to prevent race condition (#33580, #33491)
- core: use nx-mcp for older nx versions instead of nx mcp (#33553)
- core: propagate continuous task failures to dependent tasks (#33492)
- graph: surface task graph client error via error toast (#33600)
- js: ensure copy-workspace-modules copies transitive workspace dependencies (#33570)
- nest: set moduleResolution to node to prevent TS5095 error (#33607, #33589)
- node: set generatePackageJson:false for TS Solution workspaces (#33606)
- release: ensure emoji is not repeated in breaking changes summary (#33605)
- storybook: remove upper bound of migration requires (#33613)
- testing: remove declare global wrapper from cypress commands.ts template (#33573, #32930)
❤️ Thank You
- Chau Tran @nartc
- Colum Ferry @Coly010
- Coly010 @Coly010
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Kasper Christensen @fALKENdk
- Laney Pouzet
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
22.1.1
22.1.1 (2025-11-21)
🚀 Features
- linter: add util to load eslint rules from a directory (#33543)
- nx-cloud: prepend nx version to stats metadata (#33568)
🩹 Fixes
- core: don't presume a task is long running if its marked cacheable (#33545, #32610)
- core: daemon command should exit at end (#33547)
- core: provide error when nested graph construction would occur invoked during createNodes (#33541, #29618)
- graph: align exclude flag with others by using findMatchingProjects (#33550)
- linter: handle various flat config override structures (#33548, #31796)
- react: exclude tailwind from CSS modules syntax in component generator (#33574)
- storybook: remove STORYBOOK_PROJECT_ROOT when running automigrate to prevent hanging (#33567, #32492)
- vite: generate .mts config files to force ESM (#33518)
❤️ Thank You
- AgentEnder @AgentEnder
- Claude
- Craigory Coppola @AgentEnder
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- Leosvel Pérez Espinosa @leosvelperez
- MaxKless @MaxKless
20.8.3
22.1.0
22.1.0 (2025-11-19)
🚀 Features
- core: update rust (#33220)
- core: enable tui by default on windows (#33314)
- core: batch hash tasks without custom hashers (#33327)
- core: add OSC 9;4 progress indicator support to TUI (#33325)
- core: collect resource usage (#32946)
- core: disable interactivity by default for run-one task outputs in tui (#33358)
- core: track system metrics and link plugins to workers when possible (#33411)
- core: pull nx init from latest before executing (#33446)
- core: export TypeScript schema definitions via wildcard patterns (#33454, #33336)
- core: make console daemon check backgroundable and pulling from latest (#33491)
- core: apply parent env to atomized target (#33013)
- docker: support inferring additional args for targets with interpolation support (#32892)
- docker: add skipDefaultTag option to build target (#33477, #33506)
- gradle: add custom installation path to options (#33187)
- gradle: use gitignore to determine dependant task output files (#33402)
- gradle: allow specifying project and task configuration from gradle build files (#33264)
- maven: upgrade to version 0.0.8 with automated migration (#33315)
- maven: add ci-workflow generator (#33346)
- maven: bump version from 0.0.8 to 0.0.9 (#33405)
- maven: add option to prefix all maven targets (#33420)
- misc: remove CI investigation recommendations from agent rules (#33309)
- nextjs: add support for next 16 (#33296, #33207)
- nx-dev: add downloadable resources page and React book blog post (160b4cce34)
- release: support {versionActionsVersion} in docker version scheme (#33178)
- release: add resolveVersionPlans option to changelog CLI and API (#33435)
- storybook: add support for storybook 10 (#33277, #33141)
- storybook: generate ai instructions for converting from CJS to ESM after migration (#33395)
- testing: support cypress v15 (#33393, #33304)
- vite: add atomizer support for vitest (#33265)
- vite: add vitest 4 to peerDep range to prevent conflicts (#33394)
- vitest: split vitest into @nx/vitest plugin (#33311)
- vitest: split entrypoint into plugin, generators, executors (#33426)
- vitest: support vitest 4 (#33424)
🩹 Fixes
- core: adding output error reason (#33159)
- core: continue execution when cloud client is unavailable (#33214)
- core: prevent error message containing
[object Object]for invalid {workspaceRoot} placement (#33203) - core: fix swapped arguments when resolving catalog references from the filesystem (#33237)
- core: should find dockerfiles to suggest installing docker plugin (#33234)
- core: stream without prefixes showing tui (#33194, #32535)
- core: ensure daemon writes project graph cache to disk consistently (#33217)
- core: add accept header to http remote cache get (#33093, #33092)
- core: prevent undefined importer crash in pnpm lockfile parsing (#33223)
- core: split lockfile cache and other performance improvements (#33256)
- core: turn v8 serializer off by default but fallback to it if json serialization fails (#33274, #4, #2, #3)
- core: make sure that gemini contextFileName is string before trying to resolve (#33280)
- core: also look in .nx installation when reading nx.json extends (#33306)
- core: handle various directories when importing prettier (#33383)
- core: prevent args from being split by spaces when executing through nx wrapper (#33362)
- core: correctly identify local workspace dependencies on windows (#33408)
- core: clean up dead processes from metrics (#33437)
- core: resolve lockfile cache regression with keyMap state (#33448, #33256)
- core: remove system metrics collection and reporting (#33456)
- core: optimize batch task scheduling to prevent redundant traversals (#33455, #33366)
- core: capture stderr in nx add command for better error messages (#33462)
- core: include require paths when resolving specified plugins (#33495)
- core: prevent hanging between command end and process exit (#33500)
- core: resolve all lock ordering deadlocks in metrics collector (#33513)
- core: avoid leaking memory due by creating an unref'd interval for each daemon connection (#33532, #29836)
- core: default input should indeed be default (#33533)
- docker: handle undefined options when creating graph (#33235)
- docker: handle dockerfile at project root tag (#33236)
- docker: guard commitSha null in plugin interpolation (#33275)
- gradle: bump gradle migration version (#33479)
- graph: add nx:build-native dependency to typecheck target (#33428)
- js: update vitest generator import in library generator (#33430)
- js: improve typescript plugin performance (#33425, #33076)
- js: remove redundant typescript project references (#33438)
- js: skip TS project references migration for non-TS-solution workspaces (#33467)
- js: sync external references to project's tsconfig.json file if it includes any files (#33524)
- maven: add support for unbound goals in plugin targets (#33191)
- maven: use File.isAbsolute for cross-platform path detection (#33195)
- maven: resolve maven dependencies from project roots (#33313)
- maven: set migration version to 22.1.0-beta.4 (#33345)
- maven: forward parameters through target dependencies (#33365)
- maven: skip maven plugin computation on vercel/netlify (#33486)
- misc: add explanatory footer to ai agents prompts (#33182)
- misc: handle null exit codes from crashed child processes (#33163, #29204)
- misc: handle ERR_USE_AFTER_CLOSE gracefully in nx init and create-nx-workspace (#33469)
- module-federation: update @module-federation packages to fix Koa vulnerability (#33285, #33380)
- nextjs: ensure
eslint-config-nextmatches Next.js 14 and 15 versions ([#30259](https://github.com/nrwl/nx/pu...
21.6.9
22.1.0-rc.5
22.1.0-rc.5 (2025-11-17)
🚀 Features
- core: apply parent env to atomized target (#33013)
- gradle: allow specifying project and task configuration from gradle build files (#33264)
🩹 Fixes
- core: resolve all lock ordering deadlocks in metrics collector (#33513)
- storybook: normalize version range before comparison (#33515, #33514)
❤️ Thank You
- Jack Hsu @jaysoo
- Jason Jean @FrozenPandaz
- MaxKless @MaxKless
- Miroslav Jonaš