Download Latest Version 21.3.0 source code.tar.gz (329.3 MB)
Email in envelope

Get an email when there's a new version of Nx

Home / 21.3.0
Name Modified Size InfoDownloads / Week
Parent folder
21.3.0 source code.tar.gz 2025-07-18 329.3 MB
21.3.0 source code.zip 2025-07-18 334.2 MB
README.md 2025-07-18 17.0 kB
Totals: 3 Items   663.5 MB 2

21.3.0 (2025-07-18)

🚀 Features

  • angular: support angular v20.1 (#31845)
  • bundling: add useLegacyTypescriptPlugin option to migrate from rollup-plugin-typescript2 (#31718, #30488)
  • core: improve message when workspace is not detected (#31632)
  • core: pass in progress task outputs to tui for non-direct child processes (#31655)
  • core: add CI warning for missing remote cache solution (#31678)
  • core: enhance native cache operations with comprehensive logging (#31652)
  • core: refactor CI workflow generator to use centralized command generation (#31787)
  • core: add CI warning for missing remote cache solution " (#31678, #31860)
  • core: add fix-ci command to CI workflows (#31833)
  • core: add support for --tui and --no-tui (#31621)
  • core: add comprehensive dependency tracking with continuous task support (#31861)
  • core: add live durations for running tasks in the tui (#31897)
  • core: allow {args} to be fully interpolated in run-commands (#31824)
  • core: add --initialRun flag to nx watch command (#31910)
  • core: add env var for cache size (#31609)
  • core: add GitHub repository creation and push functionality (#31936)
  • graph: enhance migration state management and introduce migration stopping functionality. (#31626)
  • js: support publishing with registryConfigKey when pnpm >=9.15.7 <10.0.0 || >=10.5.0 (#31622)
  • js: add copy-workspace-modules executor (#31545)
  • js: deprecate simpleName option in library generator (#31673, #29508)
  • js: add prune-lockfile executor (#31557)
  • module-federation: bump @module-federation/enhanced version to 0.15.0 to fix vulnerability (#30806, #30502, #30748)
  • module-federation: bump @module-federation/node & @module-federation/enhanced to fix esbuild vulnerability (#31924, #31923)
  • nx-dev: read description from markdown frontmatter for index pages (#31566)
  • react: support port option for react app generator (#31552)
  • release: allow for semver requirements to be disabled in version and changelog (#31794)
  • release: releaseTagPatternStrictPreid option to match git tag based on semver preid (#31756)
  • rspack: add support for proxyConfig in the dev-server executor (#31909)
  • testing: support jest v30 (#31853, #31778)

🩹 Fixes

  • angular: fix import from ng-packagr (#31600, #31597)
  • angular: handle inferred projects without project configuration files in migrations (#31633, #31607)
  • angular: respect skipTsConfig option in library generator (#31738, #31185)
  • angular: improve indexHtmlTransformer documentation (#31742, #30831)
  • angular: expand nx tokens in project configurations when running schematic migrations (#31526, #29052)
  • angular: generate ngrx facade spec file correctly (#31850)
  • bundling: respect decision to create babelrc file (#31755, #31582)
  • bundling: ensure lockfile creation doesnt error with bun (#31762, #30568, #26640)
  • core: show the correct content in the tui terminal pane for skipped tasks (#31559)
  • core: ensure destination directories are created before copying files (#31624)
  • core: prevent duplicate nx cloud logs from global and local nx invocations (#31641)
  • core: do not auto-exit tui when there are multiple failed tasks (#31631)
  • core: improve error handling in daemon server (#31728, #31407, #31567)
  • core: clarify TypeScript configuration requirements for applications in project references migration (#31764, #31715)
  • core: resolve package.json for @nx/js to improve plugin detection (#31770)
  • core: update nx to version 21.3.0-beta.0 (#31771)
  • core: allow any framework value in preset generator schema (#31665)
  • core: return current nx init date when no git available yet (6fdca3d539)
  • core: consider virtual trees in globAsync (#31805)
  • core: improve tui contrast on some terminal themes (#31299)
  • core: add option to use v8 for daemon message serialization to avoid issues when JSON.stringify would fail (#30516)
  • core: allow opting out of sorting root tsconfig path mappings with an env var (#31763, #29043)
  • core: improve column display decision logic in tui (#31885)
  • core: swap from gray -> dark gray for light theme secondary foreground (#31901)
  • core: update our caching for ts-node service from plugins (#31917)
  • core: ensure non-pty tasks have output in terminal pane when finish (#31925)
  • core: remove affected comment and improve CI setup messages (#31913)
  • core: remove accidental additional line (#31930)
  • core: preserve scroll position when tasks complete and scroll faster (#31898)
  • core: improve parent gitignore handling for nested Nx workspaces (#31911, #27368, #28000, #27295, #28123, #29413, #29245)
  • core: shutdown running tasks properly when recieving sigterm (#31534)
  • core: lockfile pruning uess project name to identify workspace nodes (#31959)
  • core: allow nx-cloud commands to run without local Nx installation (#31974)
  • docs: add missing --project parameter to Angular service generation command (#31735, #31410)
  • expo: respect --unit-test-runner=none properly when generating expo apps and libs (#31754, #30366)
  • gradle: fix gradle on windows (#31595)
  • gradle: add build-ci target even if atomized=false (#31537)
  • gradle: add dependsOn outputs to inputs dependentTasksOutputFiles (#31683)
  • gradle: handle custom build gradle files (#31817)
  • gradle: allow excludeDependsOn to be false (#31890)
  • js: failing e2e test due to dependency (#31676)
  • js: resolve asset paths relative to workspace root instead of cwd (#31664)
  • js: improve typescript plugin build detection (#31533, #29670)
  • linter: respect the --quiet option when running with --fix (#31403, #31401)
  • linter: correct lintFilePatterns documentation to show it's optional (#31744, #29648)
  • linter: update lint executor to always log errors and stack traces (#31757, #21630)
  • linter: refactor checking if the identifier is a function via tsquery (#31792)
  • misc: add fallback for missing source root (#31759, #30638)
  • misc: await load in config-utils.ts (#31408)
  • misc: nx should error if atomization brings in invalid file paths (#31675)
  • misc: improve the generation of storybook stories (#31893)
  • module-federation: ensure manifest path not prepended with workspace root (#31698, #31524)
  • module-federation: restore support for relative URLs in module federation remotes (#31723, #30615, #31538)
  • module-federation: ensure react deps are eagerly loaded [#31612] (#31961, #31612)
  • nextjs: use next/jest.js for Jest configuration to support modern JSX transform (#31705, #27900)
  • node: ensure args are set in target correctly (#31758, #31578)
  • node: improve error handling during cleanup in Node application tests (#31767)
  • node: reorder addPlugin in normalizeOptions return object (#31785)
  • node: preserve existing test target options (#31891)
  • nuxt: fix TypeScript configuration chain for Nuxt components and composables (#31701, #30742)
  • nx-dev: small adjustment to the blog post (bd898d3220)
  • nx-dev: pinning logic on blog entry page (ebb1716a99)
  • nx-dev: update sorting of pinned posts (d347d976ad)
  • plugin: fix e2e-project generator when the e2e target is inferred (#31809)
  • react: do not set styles.tailwind for executor options for projects not using inferred targets (#31667)
  • react: add .js extensions to subpath imports in module federation templates (#31730, #31448)
  • react: normalize paths correctly when generating stories (#31944)
  • react: Ensure react-router e2e test are generated with the correct config (#31945)
  • react-native: fix react native web configuration (#29608)
  • react-native: app creation should sync deps (#31839)
  • storybook: handle hyphenated framework names in pnpm dependency installation (#31760, #31292)
  • testing: do not update component configuration in cypress set-inject-document-domain migration (#31614, #31610)
  • testing: correct Playwright grep documentation from glob to regex (#31743, #30181)
  • testing: do not re-add vscode recommended extension for jest after initial jest setup (#31745, #29345)
  • testing: prefer using tsconfig.spec.json when loading jest config in plugin (#31726, #31351)
  • testing: unset customConditions when running the open-cypress inferred task (#31687, #31616)
  • testing: when we generate a random port we should start from 1024 (#31927)
  • testing: update yarn integration tests for remix and enable previously skipped tests (#31933)
  • vite: fix the build command for the deps in the vite tsconfig paths plugin (#31729, #31333)
  • vite: resolve outDir path correctly for nested monorepos (#31741, #31234)
  • vite: ensure path aliases are not replaced when building vite projects and using ts path mappings (#31747, #30814)
  • vite: ensure vue-tsc is used for typecheck of vue projects (#31761, #31647)
  • vite: bump @analogjs/vite-plugin-angular to 1.19.x (#31866)
  • webpack: respect user config when applying node target [#30937] (#31700, #30937)
  • webpack: use loadPaths instead of includePaths (#31946, #30340)
  • webpack: ensure less and less-loader deps are ranges (#31958, #31953)

❤️ Thank You

  • Benjamin Cabanes @bcabanes
  • bkp-ttd
  • Brandon Roberts @brandonroberts
  • Colum Ferry @Coly010
  • Craigory Coppola @AgentEnder
  • Emily Xiong @xiongemi
  • Iulian Marcu @iuliancmarcu
  • Jack Hsu @jaysoo
  • James Henry @JamesHenry
  • Jason Jean @FrozenPandaz
  • Jonathan Gelin @jogelin
  • Julien Marcou
  • Juri @juristr
  • Juri Strumpflohner @juristr
  • Leosvel Pérez Espinosa @leosvelperez
  • Miguel @mpsanchis
  • Nicholas Cunningham @ndcunningham
  • Tomáš Čarnecký @wereHamster
  • Victor Savkin @vsavkin
  • yarden-island
Source: README.md, updated 2025-07-18