github nrwl/nx 22.3.0

latest releases: 22.4.0-beta.0, 22.3.1
21 hours ago

22.3.0 (2025-12-17)

🚀 Features

  • angular: support angular v21 (#33378)
  • angular: add migration to set isolateModules: true to jest tsconfig files (#33889)
  • angular: add migration to replace jest-preset-angular/setup-jest imports (#33899)
  • core: add NX_DEFAULT_OUTPUT_STYLE env var (#33493, #27490)
  • core: add CnwError class for typed error handling in create-nx-workspace (#33839)
  • core: add hints and status messages to the tui (#33838)
  • js: add option for using tsgo compiler when inferring build and typecheck tasks (#33821, #32591)
  • js: improve SWC compilation error logging (#33297)
  • misc: support prettier v3 (#33898, #30801)
  • nx-plugin: allow customizing the location of the companion E2E project (#32073, #32069)
  • rspack: add support for cssFilename config #32498 (#32506, #32498)
  • testing: add option to playwright preset to open html report (#31282)
  • webpack: add support for merging externals to NxAppWebpackPlugin (#33833)

🩹 Fixes

  • angular: process only the in progress entry points in ng-packagr-lite's write bundles transform function (#33784, #3172, #33560)
  • angular: collect known tsconfig files from non-buildable angular libraries in migration (#33834, #33705)
  • angular: improve error message when using esbuild-based build targets and generating cypress ct (#33846, #33329)
  • angular: install compatible vitest version for angular projects (#33858, #33770)
  • angular: ensure jest and jest-preset-angular are updated correctly for angular v21 (#33896)
  • bundling: correct project path for createTmpTsConfig (#31314, #31522)
  • core: optimize pnpm lockfile parsing with pre-built indexes (#33750, #32669, #32254, #33751)
  • core: share visited Set across affected graph traversal (#33756, #32265)
  • core: set max listeners for process in task orchestrator (#33596, #32439)
  • core: exit with error when generator prompts fail (#33691)
  • core: fix record stat on initial CNW call (#33783)
  • core: ensure terminalOutput is always a string in task results (#33782, #32675)
  • core: improve node creation for pnpm parser (#33788)
  • core: add pnpm/yarn support for CNW templates (#33827)
  • core: swc register base url missing when using tsgo (#33332)
  • core: pass more error detail for CNW (#33844)
  • core: create all tables upfront when creating the database (#33843)
  • core: improve performance of buildExplicitPackageJsonDependencies (#33791)
  • core: do not invoke prettier with --write and --list-different when unsupported (#33857, #33658, #31951)
  • core: preserve command output in TUI summary for non-cached tasks (#33673)
  • core: update CNW messaging and remove cancel event from SIGINT (#33872)
  • core: restore linkTaskDetails param for backwards compatibility (#33874, #33843)
  • core: include PNPM patches in externalDependencies hash computations (#33551)
  • core: add back ability to create cache_outputs table without a foreign key (#33880)
  • core: display task output in TUI when native command runner is disabled (#33881, #32803)
  • core: prevent pinning the same task in multiple panes in the tui (#33863)
  • core: reduce error rate with dir validation and add more debugging data (#33887)
  • core: improve database initialization error handling (#33820)
  • core: invalidate sync generator cache on file changes and use up-to-date project graph (#33780)
  • core: convert * to workspace:* for pnpm/yarn/bun in CNW (#33893)
  • expo: set projectRoot to workspaceRoot for Expo SDK 54+ compatibility (#33836, #33597)
  • graph: serve full project graph when navigating from PDV (#33897)
  • js: use Set for O(1) package.json root lookup (#33757, #32265)
  • js: recognize NodeNext as ESM (#31508)
  • js: display pnpm publish errors without requiring --verbose (#33837)
  • js: make CopyAssetsHandler per-file logs opt-in via verbose mode (#33835, #33521)
  • js: prevent crash when terminating task using the @nx/js:swc executor (#33845, #31938)
  • js: handle workspace packages when nx.name differs from package.json.name (#33583, #33582)
  • js: resolve nx binary from workspace root in node executor (#33842, #33776)
  • js: detect changes to pnpm.overrides and overrides in package.json (#31914)
  • js: check package.json for name when project.json exists but has no name (#31887)
  • js: adjusted stdout and stderr handling to support the latest @swc/cli version (#32685)
  • js: allow copying generated Prisma client (asset) from 'node_modules' (#33822)
  • misc: send connectUrl in completion metadata (#33878)
  • misc: use string type for fetchDepth in azure-pipelines.yml (#33727)
  • module-federation: normalize workspace protocol versions in requiredVersion (#33733, #31397, #33734)
  • module-federation: check port availability before starting remote proxies (#33871, #33470)
  • nest: ensure library is generated with correct outputPath for TS Soln #32060 (#33864, #32060)
  • nextjs: accept fileName option to generate page (#30013)
  • node: sourceMaps option to sourceMap in webpack config (#33333)
  • node: use @swc/helpers instead of tslib when compiler is swc (#33885, #31202)
  • react: update template comment to be valid css (#33169, #20192639)
  • release: {releaseGroupName} not interpolated in changelog tag/releaseTagPattern (#33779)
  • repo: fix dotnet installation on Windows (#33786)
  • repo: restore mise tools in e2e-matrix workflow (#33785, #33772)
  • repo: install nightly Rust for WASM build in publish workflow (#33792, #33772)
  • repo: use RUSTUP_TOOLCHAIN env var for WASM builds (#33794)
  • repo: revert to older nightly Rust for WASM builds (#33797)
  • repo: install correct Rust target for x86_64 macOS build (#33853)
  • rspack: enable build mode for TypeScript checker in TS solution setups (#33447)
  • storybook: conditionally include node imports only for non-angular frameworks (#33728)
  • storybook: use helper to find correct version when pnpm catalogs are used (#33900, #29772)
  • testing: update jest ci target to forward top level args (#31379)
  • vite: update worker configuration in generator to follow Vite's … (#30465)
  • web: update e2e test regex for SWC decorator metadata (#33892)
  • webpack: show webpack chunks when verbose (#30960)
  • webpack: interpolate process.env more verbosely to reduce bundle size with DefinePlugin (#30826)

❤️ Thank You

Don't miss a new nx release

NewReleases is sending notifications on new releases.