Change8

22.3.0

📦 nxView on GitHub →
13 features🐛 42 fixes🔧 6 symbols

Summary

This release introduces significant updates for Angular (v21 support and Jest migrations) and enhances core performance, especially around package manager parsing (pnpm/yarn) and TUI usability. It also adds support for Prettier v3 and improves JS/SWC compilation logging.

Migration Steps

  1. Run migrations to set `isolateModules: true` in Jest tsconfig files (if using Angular).
  2. Run migrations to replace `jest-preset-angular/setup-jest` imports (if using Angular).

✨ New Features

  • Support for Angular v21.
  • Added migration to set `isolateModules: true` in Jest tsconfig files for Angular projects.
  • Added migration to replace `jest-preset-angular/setup-jest` imports.
  • Introduced `NX_DEFAULT_OUTPUT_STYLE` environment variable.
  • Added `CnwError` class for typed error handling in `create-nx-workspace`.
  • Added hints and status messages to the TUI (Terminal User Interface).
  • Added option to use the tsgo compiler when inferring build and typecheck tasks for JS projects.
  • Improved SWC compilation error logging.
  • Support for Prettier v3.
  • Allow customizing the location of the companion E2E project in nx-plugin.
  • Added support for `cssFilename` configuration in rspack.
  • Added option to the Playwright preset to open the HTML report.
  • Added support for merging externals to `NxAppWebpackPlugin`.

🐛 Bug Fixes

  • Fixed processing only in-progress entry points in `ng-packagr-lite`'s write bundles transform function.
  • Improved collection of known tsconfig files from non-buildable Angular libraries during migration.
  • Improved error message when using esbuild-based build targets and generating Cypress CT.
  • Ensured compatible Vitest version is installed for Angular projects.
  • Ensured Jest and `jest-preset-angular` are updated correctly for Angular v21.
  • Corrected project path for `createTmpTsConfig`.
  • Optimized pnpm lockfile parsing with pre-built indexes.
  • Shared visited Set across affected graph traversal.
  • Set max listeners for process in task orchestrator.
  • Exited with error when generator prompts fail.
  • Fixed record stat on initial CNW call.
  • Ensured `terminalOutput` is always a string in task results.
  • Improved node creation for pnpm parser.
  • Added pnpm/yarn support for CNW templates.
  • Fixed SWC register base URL missing when using tsgo.
  • Passed more error detail for CNW.
  • Created all tables upfront when creating the database.
  • Improved performance of `buildExplicitPackageJsonDependencies`.
  • Prevented invoking prettier with `--write` and `--list-different` when unsupported.
  • Preserved command output in TUI summary for non-cached tasks.
  • Updated CNW messaging and removed cancel event from SIGINT.
  • Restored `linkTaskDetails` param for backwards compatibility.
  • Included PNPM patches in externalDependencies hash computations.
  • Added back ability to create `cache_outputs` table without a foreign key.
  • Displayed task output in TUI when native command runner is disabled.
  • Prevented pinning the same task in multiple panes in the TUI.
  • Reduced error rate with dir validation and added more debugging data.
  • Improved database initialization error handling.
  • Invalidated sync generator cache on file changes and used up-to-date project graph.
  • Converted * to `workspace:*` for pnpm/yarn/bun in CNW.
  • Set `projectRoot` to `workspaceRoot` for Expo SDK 54+ compatibility.
  • Served full project graph when navigating from PDV.
  • Used Set for O(1) package.json root lookup.
  • Recognized NodeNext as ESM.
  • Displayed pnpm publish errors without requiring `--verbose`.
  • Made `CopyAssetsHandler` per-file logs opt-in via verbose mode.
  • Prevented crash when terminating task using the `@nx/js:swc` executor.
  • Handled workspace packages when `nx.name` differs from `package.json.name`.
  • Resolved nx binary from workspace root in node executor.
  • Detected changes to `pnpm.overrides` and `overrides` in `package.json`.
  • Checked `package.json` for name when `project.json` exists but has no name.
  • Adjusted stdout and stderr handling to support the latest `@swc/cli` version.

🔧 Affected Symbols

ng-packagr-liteNxAppWebpackPlugincreate-nx-workspacejest-preset-angulartsgo@nx/js:swc