Download Latest Version 21.4.0 source code.tar.gz (373.1 MB)
Email in envelope

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

Home / 21.4.0
Name Modified Size InfoDownloads / Week
Parent folder
21.4.0 source code.tar.gz 2025-08-15 373.1 MB
21.4.0 source code.zip 2025-08-15 378.3 MB
README.md 2025-08-15 27.8 kB
Totals: 3 Items   751.4 MB 0

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, and scripts (#28)
  • angular-rspack: support extractLicenses option (#30)
  • angular-rspack: improve createConfig public api (#35)
  • angular-rspack: support host option 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, and proxyConfig options (#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 root option and improve tsConfig handling (#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-angular to v15 (#32050, #32024)
  • angular: update migration target version for jest-preset-angular v15 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 stylePreprocessorOptions is correctly used (#72)
  • angular-rspack: update @rspack/core dependency (#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 projectType is 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 --fix and --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-aliases migration (#31995, #31991)
  • testing: add missing package updates for ts-jest and jest-util for 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
Source: README.md, updated 2025-08-15