unstale

npm / nx

nx

What changed in nx 21 to 23, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

66 breaking12 security22 deprecations92 new APIs and options10 performance58 behavior and defaults69 tooling310 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

nx 23218 changes

Breaking changes 39

  • Nx adds ultracache configuration for sandbox targets, replacing the sandbox target property.

    23.3.0release notes

  • Nx adds Angular v22 support; Angular v19 is no longer supported.

    23.1.0release notes

  • Angular esbuild option paths are now resolved relative to the workspace root.

    23.1.0release notes

  • ESLint v8 is no longer supported; Nx requires ESLint v9 or later.

    23.1.0release notes

  • Support for filtered array-shape targetDefaults was reverted pending redesign and reapplication.

    23.0.0release notes

  • The rollup buildLibsFromSource default is aligned.

    23.0.0release notes

  • CreateNodes V2 types are renamed to the canonical OG names.

    23.0.0release notes

  • CreateNodes V2 types are renamed to the canonical original names.

    23.0.0release notes

  • The legacy 'self' and 'dependencies' magic strings are dropped from dependsOn.

    23.0.0release notes

  • The legacy 'self' and 'dependencies' magic strings are dropped from dependsOn.

    23.0.0release notes

  • The deprecated initTasksRunner API has been removed.

    23.0.0release notes

  • The deprecated initTasksRunner export is removed from nx; consumers should use runDiscreteTasks or runContinuousTasks instead.

    23.0.0release notes

  • The deprecated js option is removed from component generators.

    23.0.0release notes

  • The deprecated js option has been removed from component generators.

    23.0.0release notes

  • The legacy TypeScript plugin has been dropped.

    23.0.0release notes

  • The legacy TypeScript plugin is dropped.

    23.0.0release notes

  • The deprecated Angular move generator has been removed.

    23.0.0release notes

  • The deprecated Angular NgRx generator has been removed.

    23.0.0release notes

  • Node 20 is no longer supported.

    23.0.0release notes

  • The deprecated entry point has been removed; update imports to a supported entry point.

    23.0.0release notes

  • The entry point is removed; update imports to @nx/module-federation/angular. nx migrate handles this automatically.

    23.0.0release notes

  • The generator is removed. Use @nx/workspace:move or its mv alias instead.

    23.0.0release notes

  • The generator is removed. Use @nx/angular:ngrx-root-store for root state or @nx/angular:ngrx-feature-store for feature state.

    23.0.0release notes

  • @nx/dotnet graduates from experimental status and drops the /plugin export.

    23.0.0release notes

  • The @nx/dotnet/plugin entry point is removed; use @nx/dotnet. The included migration updates nx.json automatically.

    23.0.0release notes

  • The skipSetupFile option of the @nx/jest:configuration generator is removed.

    23.0.0release notes

  • The setupFile option of the @nx/jest:jest executor is removed.

    23.0.0release notes

  • Interactive migration mode is disallowed for Nx v23 and later targets.

    23.0.0release notes

  • Renames --includeDependentProjects to --includeDependencies.

    23.0.0release notes

  • Deprecated flat releaseTag* properties are dropped and v23 defaults are updated.

    23.0.0release notes

  • Deprecated releaseTag* flat properties are dropped and v23 defaults are updated.

    23.0.0release notes

  • The deprecated Jest setupFile option has been removed.

    23.0.0release notes

  • The deprecated Jest skipSetupFile option has been removed.

    23.0.0release notes

  • The SVGR option has been removed; a withSvgr migration is provided.

    23.0.0release notes

  • The SVGR option is removed; a withSvgr migration is provided.

    23.0.0release notes

  • The setup-tailwind generators have been removed.

    23.0.0release notes

  • Vitest support is removed from @nx/vite in favor of @nx/vitest.

    23.0.0release notes

  • Vitest support is removed from @nx/vite in favor of @nx/vitest.

    23.0.0release notes

  • Deprecated webpack plugin re-exports have been dropped.

    23.0.0release notes

Security 7

Deprecations 20

  • The standalone parameter of addProjectConfiguration is deprecated.

    23.0.0release notes

  • The standalone parameter is deprecated.

    23.0.0release notes

  • The Angular convert-to-with-mf generator is deprecated.

    23.0.0release notes

  • Support for ESLint v8 is deprecated.

    23.0.0release notes

  • Executors that have inferred-plugin replacements are deprecated.

    23.0.0release notes

  • Old module federation generators are deprecated, and new consumer/provider generators are added.

    23.0.0release notes

  • The Cypress executor is deprecated.

    23.0.0release notes

  • The @nx/cypress:cypress executor is deprecated.

    23.0.0release notes

  • The @nx/detox build and test executors are deprecated.

    23.0.0release notes

  • The @nx/detox build executor is deprecated.

    23.0.0release notes

  • The @nx/detox test executor is deprecated.

    23.0.0release notes

  • The nxCopyAssetsPlugin helper is deprecated.

    23.0.0release notes

  • The nxCopyAssetsPlugin helper is deprecated.

    23.0.0release notes

  • The nxViteTsPaths helper is deprecated.

    23.0.0release notes

  • The nxViteTsPaths helper is deprecated.

    23.0.0release notes

  • Angular SCAM generators are deprecated.

    23.0.0release notes

  • The webpack and rspack config compose helpers are deprecated.

    23.0.0release notes

  • The webpack/rspack config compose helpers are deprecated.

    23.0.0release notes

  • The Next.js withNx function is deprecated.

    23.0.0release notes

  • The withNx function is deprecated.

    23.0.0release notes

New APIs and options 31

  • Nx adds an opt-in to select affected tasks instead of affected projects.

    23.3.0release notes

  • Use --explain to see why each task is affected.

    23.3.0release notes

  • Exports NodeExecutorOptions from @nx/js/executors for consumers that need the executor options type.

    23.3.0release notes

  • Set NX_CLOUD_USE_ULTRACACHE to turn on ultracache.

    23.3.0release notes

  • Nx adds a batched lint executor for oxlint.

    23.3.0release notes

  • Adds --port to @nx/web:app.

    23.3.0release notes

  • The CSS module hash algorithm can now be overridden.

    23.2.0release notes

  • Migration generators can now skip their AI step.

    23.2.0release notes

  • Nx Cloud generates this file for agent distribution.

    23.2.0release notes

  • Run a single migration with the new --run-migration option.

    23.2.0release notes

  • This command is added as an alias for nx-cloud start-nx-agents.

    23.2.0release notes

  • Nx Release now supports custom conventional commit types.

    23.1.2, 23.2.0release notesrelease notes

  • Nx Release can select projects based on tags.

    23.2.0release notes

  • The TUI adds vim-style pane search and a full-width status bar.

    23.2.0release notes

  • Generators consistently offer Vitest through the unitTestRunner option.

    23.2.0release notes

  • The library generator exposes the compiler option.

    23.1.3release notes

  • The library generator exposes the inSourceTests option.

    23.1.3release notes

  • Selected projects can run without running their task dependencies.

    23.1.1release notes

  • Programmatic usage can now force changelog generation.

    23.1.0release notes

  • TypeScript config path alias resolution now supports the ${configDir} token.

    23.0.2, 23.1.0release notesrelease notes

  • The workspace generator can scaffold a workspace into the current directory.

    23.1.0release notes

  • The @nx/esbuild/executors entry point is now exported.

    23.1.0release notes

  • Filtered targetDefaults can now use the nested-array shape.

    23.1.0release notes

  • Vite build and test targets gain configurable TypeScript path support.

    23.1.0release notes

  • Migration entries can now use a prompt field.

    23.0.0release notes

  • Adds the --mode flag to nx migrate.

    23.0.0release notes

  • Adds the --multi-major-mode flag to nx migrate.

    23.0.0release notes

  • Adds agentic mode for running migrations.

    23.0.0release notes

  • A migrate configuration section is available in nx.json.

    23.0.0release notes

  • The string '...' is supported as a spread token when merging target configuration.

    23.0.0release notes

  • Adds a flag to skip the confirmation prompt for third-party presets.

    23.0.0release notes

Performance 1

  • Angular Rspack builds are faster and align their behavior with the esbuild application builder.

    23.1.1release notes

Behavior and default changes 17

  • A continuous dependency's inputs are included in the hash of the task it serves.

    23.3.0release notes

  • Next.js uses out/ as the default output directory when output is export.

    23.3.0release notes

  • Reads the pnpm 12 min-release-age policy instead of deferring to an install.

    23.2.1release notes

  • Nx asks for confirmation before creating migration commits on the default branch.

    23.2.0release notes

  • Nx derives a stable repo key from the normalized remote and relative path, making repository identification consistent across equivalent paths.

    23.1.1release notes

  • Generated React projects no longer pin eslint-plugin-react.

    23.0.2, 23.1.0release notesrelease notes

  • The React 19 migration skips the React 19 update for workspaces using Remix v2.

    23.1.0release notes

  • Nx warns when the self-hosted remote cache disables TLS verification.

    22.7.7, 23.1.0release notesrelease notes

  • The terminal UI now supports mouse interaction.

    23.1.0release notes

  • Web executor, plugin, and generator commands run with the workspace package manager.

    23.0.2, 23.1.0release notesrelease notes

  • Clickable cloud prompt links now include UTM tracking.

    23.0.1release notes

  • Rsbuild build outputs are inferred directly from distPath.root.

    22.7.3, 23.0.0release notesrelease notes

  • The default Jest module path scan excludes dist and out-tsc.

    23.0.0release notes

  • Native Node.js TypeScript stripping is enabled by default.

    23.0.0release notes

  • The --include option now supports any package that supports optional updates.

    23.0.0release notes

  • The Rollup buildLibsFromSource default is aligned with the updated bundling behavior.

    23.0.0release notes

  • Vitest watch is disabled by default for Angular.

    22.7.2, 23.0.0release notesrelease notes

Tooling 29

  • Angular Rspack can scaffold and run SSR apps on the @angular/ssr application engine.

    23.3.0release notes

  • Nx reports the cache location alongside cache usage.

    23.2.1, 23.3.0release notesrelease notes

  • Nx supports Cypress 16.

    23.3.0release notes

  • Nx Angular supports ngrx v22, allowing Angular workspaces to use that version.

    23.3.0release notes

  • Orchestrated migrate runs emit a runbook and per-step instructions to guide the migration.

    23.3.0release notes

  • Nx guarantees terminal output files and adds an agent-friendly summary output style.

    23.3.0release notes

  • Nx supports Vitest 5.

    23.3.0release notes

  • Scans package projects for environment variables.

    23.2.1release notes

  • Keeps the cache in the workspace on CI.

    23.2.1release notes

  • The Nx daemon and plugin workers can run inside agent sandboxes.

    23.2.0release notes

  • Nx adds support for Angular v22.1.

    23.2.0release notes

  • Nx adds built-in support for Bun dependency catalogs.

    23.2.0release notes

  • Nx adds the @nx/oxlint plugin.

    23.2.0release notes

  • Nx adds built-in support for the oxfmt formatter alongside Prettier.

    23.2.0release notes

  • Generators for Node, Nest, and Express can generate Vitest setup.

    23.2.0release notes

  • Nx plugin generators add Vitest support for e2e tests.

    23.2.0release notes

  • Nx adds support for Expo SDK 56.

    23.1.0release notes

  • Nx adds an upgrade path from Next.js 14 to 15.

    23.1.0release notes

  • Nx shows a performance report at the end of every run, with recommendations.

    23.1.0release notes

  • Nx adds an upgrade path from React 18 to 19.

    23.1.0release notes

  • Nx supports @rspack/core@2 and @rsbuild/core@2 with multi-version compliance.

    23.1.0release notes

  • A migration renames createNodesV2 to createNodes.

    23.0.0release notes

  • A JSON schema is added for migrations.json files.

    23.0.0release notes

  • Deep imports from @nx/devkit/src/... are migrated away from.

    23.0.0release notes

  • Nx adds support for pnpm 11.2.2.

    22.7.3, 23.0.0release notesrelease notes

  • Shell tab-completion is available for bash, zsh, fish, and powershell.

    23.0.0release notes

  • Migrations are available to move Vite 7 projects to Vite 8.

    23.0.0release notes

  • The migration handles Vitest workspace configuration better.

    23.0.0release notes

  • The v23 migration adds webpack tooling to devDependencies.

    23.0.0release notes

Fixes and other changes 74

  • Corrects declaration maps and exports for Angular buildable libraries.

    23.2.1, 23.3.0release notesrelease notes

  • Fixes resolution of the requested Nx version when running nx migrate under npm 12.

    23.3.0release notes

  • Nx supports pnpm 12 install configuration and shims.

    23.3.0release notes

  • Carries minimumReleaseAge into pruned pnpm deploy output.

    23.2.1release notes

  • Writes the normalized cache option in NxAppRspackPlugin.

    23.2.1release notes

  • Resolves tsconfig to an absolute path so ${configDir} paths type-check without baseUrl.

    23.2.1release notes

  • The none value now skips AI agent file generation.

    23.1.1, 23.2.0release notesrelease notes

  • The esbuild executor now supports TypeScript esbuildConfig files.

    23.1.1, 23.2.0release notesrelease notes

  • Selected projects now run correctly when this option is used.

    23.2.0release notes

  • Nx now honors the pnpm minimumReleaseAge configuration with pnpm 11.

    23.1.1, 23.2.0release notesrelease notes

  • Options from targetDefaults now apply to inferred targets that are not redeclared.

    23.2.0release notes

  • Vitest generation now creates a root vitest.config.ts instead of the deprecated vitest.workspace.

    23.1.1, 23.2.0release notesrelease notes

  • The Vitest test executor now honors watch configuration and keeps --ui open.

    23.1.1, 23.2.0release notesrelease notes

  • Daemon workspace roots are compared case-insensitively on Windows.

    22.7.9, 23.1.3release notesrelease notes

  • A built next.config can load without @nx/next installed.

    23.1.3release notes

  • The optional ng-packagr package is imported lazily.

    23.1.3release notes

  • TS config files are reloaded fresh instead of being served from stale cached modules.

    23.1.3release notes

  • JavaScript affected detection resolves override selectors.

    23.1.2release notes

  • The Gradle plugin emits valid Groovy when applied to an existing allprojects block.

    23.1.2release notes

  • Angular keeps buildable libraries private.

    23.1.2release notes

  • Nx accepts bun.lock files with lockfileVersion 2 and 3.

    23.1.2release notes

  • Angular Rspack rebuilds components when their templates or styles change on Windows.

    23.1.2release notes

  • Target cacheability is maintained when an executor target default applies.

    23.1.2release notes

  • The Expo dev server stays alive under Jest.

    23.1.2release notes

  • Devkit tree walks and generator formatting honor cascading ignore files.

    23.1.2release notes

  • Expo derives Metro's projectRoot and node_modules from the app being bundled.

    23.1.2release notes

  • React makes module federation packages optional peer dependencies.

    23.1.2release notes

  • The generator no longer installs unused Next.js ESLint packages.

    23.1.2release notes

  • The Next.js library generator exports its server entry.

    23.1.2release notes

  • Nx stops the daemon before nx add installs a package.

    23.1.2release notes

  • The command drains stdout before exiting, preventing output from being lost.

    23.1.2release notes

  • Migration honors the package manager's registry configuration.

    23.1.2release notes

  • The command drains stdout before exiting, preventing output from being lost.

    23.1.2release notes

  • The command drains stdout before exiting, preventing output from being lost.

    23.1.2release notes

  • Angular Rspack builds no longer crash when styleUrls is not an array.

    23.1.2release notes

  • Target group members without a target are skipped.

    23.1.2release notes

  • Nx no longer leaves an unkillable process when a terminal closes.

    23.1.2release notes

  • Nx Release skips changelog resolution for unversioned projects.

    23.1.2release notes

  • Angular makes webpack-related packages optional peer dependencies, so projects that do not use them need not install them.

    23.1.2release notes

  • ensurePackage resolves packages against the workspace.

    23.1.1release notes

  • Webpack bundles subpaths of non-buildable libraries that use fallback-array exports.

    23.1.1release notes

  • Nx supports patched dependency hashes in pnpm 11 lockfiles.

    23.1.1release notes

  • Nx preserves comments in pnpm-workspace.yaml and reads package.json as JSONC.

    23.1.1release notes

  • The Babel preset supports private methods and static blocks.

    23.1.1release notes

  • Flat ESLint configs use projectService for typed linting.

    23.1.1release notes

  • The Module Federation dev-server plugin no longer caches static remote assets.

    23.1.1release notes

  • The Vite executor no longer leaks watch: false into the dev-server configuration.

    23.1.1release notes

  • The webpack executor propagates its watch option to the webpack configuration.

    23.1.1release notes

  • Workspace glob matching supports multiple brace groups.

    23.1.1release notes

  • Rspack uses contenthash for chunkFilename to prevent stale chunks.

    23.0.2, 23.1.0release notesrelease notes

  • formatFiles works with Prettier v2 support restored.

    23.0.2, 23.1.0release notesrelease notes

  • Nx re-adds the isCacheableTask helper for determining whether a task is cacheable.

    23.0.2, 23.1.0release notesrelease notes

  • create-nx-workspace now respects an explicit --nxCloud=skip setting for AI agents.

    23.0.2, 23.1.0release notesrelease notes

  • Projects-filtered targetDefaults are skipped when resolved without a project.

    23.1.0release notes

  • The Vitest executor supports passing mode through and applies mode-based configuration consistently.

    23.0.1, 23.1.0release notesrelease notesrelease notes

  • Prevents doubled output paths in path mappings for buildable libraries.

    23.0.2release notes

  • Resolves catalog references in pruned package.json output.

    23.0.2release notes

  • Waits for the process tree to exit when stopping executor tasks.

    23.0.2release notes

  • Preserves the allowlist in pruned package.json output.

    23.0.2release notes

  • Avoids a crash when include=optional filters out the target package, and honors preapproved packages while emitting a valid temporary workspace.

    23.0.2release notes

  • Applies target defaults when project.json overrides an inferred run-commands target with different commands.

    23.0.2release notes

  • Scopes incremental type-check information per project.

    23.0.2release notes

  • Vite detects the Vue 2 plugin for vue-tsc type checking.

    23.0.2release notes

  • AI-edited files are formatted after agentic migrations.

    23.0.1release notes

  • Compilation failures are surfaced as build errors, and resources are released on teardown.

    23.0.1release notes

  • Angular resolves esbuild option paths relative to the workspace root.

    23.0.1release notes

  • nx migrate no longer writes minimumReleaseAgeExclude.

    23.0.1release notes

  • nx migrate no longer crashes on dependency specifiers that are not semver.

    23.0.1release notes

  • A breaking change changelog entry no longer swallows the trailing PR body.

    23.0.1release notes

  • Nx avoids false-positive tsconfig path matches for sibling project roots.

    23.0.1release notes

  • nx mcp can now run outside an Nx workspace.

    22.7.2, 23.0.0release notesrelease notes

  • NX_PREFER_TS_NODE is respected over native TypeScript stripping.

    23.0.0release notes

  • Absolute Cypress screenshotsFolder paths are handled correctly.

    23.0.0release notes

  • Absolute Cypress videosFolder paths are handled correctly.

    23.0.0release notes

nx 22406 changes

Breaking changes 26

  • TypeScript 7 is excluded from supported versions on the 22.7.x line.

    22.7.8release notes

  • Nx no longer infers projects: 'self' in dependsOn entries.

    22.7.3release notes

  • Generated tsconfig files no longer include baseUrl; path mappings use a ./ prefix instead.

    22.7.0release notes

  • An nx property that defines an executor or command now overwrites an inferred script target.

    22.6.5release notes

  • CRA migration logic has been removed from nx init.

    22.6.1release notes

  • The Gradle executor now enforces that only one Gradle task is passed to it.

    22.4.5release notes

  • The React package removes its file-loader dependency.

    22.4.2release notes

  • The Gradle executor now always reruns tasks.

    22.4.0release notes

  • Nx now exits with an error when generator prompts fail.

    22.2.1release notes

  • Failures in continuous tasks are propagated to dependent tasks.

    22.1.2, 22.2.0release notesrelease notes

  • Nested graph construction invoked during createNodes now produces an error instead of occurring unexpectedly.

    22.1.1, 22.2.0release notesrelease notes

  • Vitest support is split into the @nx/vitest plugin, with separate plugin, generator, and executor entry points.

    22.1.0release notes

  • This DefaultChangelogRenderer configuration is no longer nullable.

    22.0.0release notes

  • CreateNodes v1 types are no longer available in Nx 22.

    22.0.0release notes

  • The deprecated option was removed from webpack and rspack.

    22.0.0release notes

  • Deprecated legacy versioning was removed.

    22.0.0release notes

  • The deprecated legacy versioning mode is no longer available.

    22.0.0release notes

  • The environment variable was removed.

    22.0.0release notes

  • Formatting no longer defaults to sorting TypeScript path mappings; pass this flag to retain the previous behavior.

    22.0.0release notes

  • Support for non-isolated webpack config was removed from the React testing preset.

    22.0.0release notes

  • Migrations prior to v20 were removed.

    22.0.0release notes

  • The generator was removed in favor of framework-specific options.

    22.0.0release notes

  • The deprecated option was removed from webpack and rspack.

    22.0.0release notes

  • The option is no longer supported in library generators.

    22.0.0release notes

  • Now defaults to always; users who relied on the previous auto behavior can explicitly set it to auto.

    22.0.0release notes

  • The default changed to false in v22.

    22.0.0release notes

Security 5

  • Nx warns before installing unknown npm packages as presets.

    22.7.3release notes

  • nx graph dev server permissive CORS policy

    22.7.2security advisory

  • Shell metacharacters in CLI arguments passed to tasks are now properly quoted.

    22.6.1release notes

  • Command injection in getNpmPackageVersion is prevented.

    22.5.0release notes

  • Module Federation updates its @module-federation packages to fix a Koa vulnerability.

    22.0.3, 22.1.0release notesrelease notes

Deprecations 2

  • The setup-tailwind generators are deprecated.

    22.4.0release notes

  • The releaseTag* properties were refactored into a nested releaseTag object; existing configurations continue to work through the migration period.

    22.0.0release notes

New APIs and options 61

Performance 9

  • Reduced memory usage during task hashing on large workspaces.

    22.7.12release notes

  • Nx enables Node's native V8 compile cache support.

    22.7.2release notes

  • withNx now uses the cached project graph.

    22.7.1release notes

  • The command runs faster by avoiding heavy imports.

    22.7.0release notes

  • Interpolates process.env more verbosely to reduce bundle size with DefinePlugin.

    22.2.2release notes

  • Initial generation for JavaScript projects is more lightweight.

    22.2.0release notes

  • Optimizes batch task scheduling to prevent redundant traversals.

    22.0.4release notes

  • Improves TypeScript plugin performance.

    22.0.4release notes

  • Hash tasks in batches when no custom hashers are configured.

    22.0.3release notes

Behavior and default changes 41

Tooling 40

Fixes and other changes 222

  • Oversized daemon responses now fall back to v8, and the wire protocol uses length prefixes.

    22.7.12release notes

  • Resolving configurations no longer mutates target options.

    22.7.12release notes

  • Maven and Gradle graph analysis no longer runs through a shell.

    22.7.9release notes

  • Migrations fetched via install now use the workspace package manager.

    22.7.8release notes

  • The Angular Rspack stylesheet bundler is disposed so one-shot builds exit.

    22.7.8release notes

  • Generated pnpm-workspace.yaml allows Nx build scripts and acknowledges the @swc/core build script.

    22.7.8release notes

  • Declares directory build props as inputs for analyzer dotnet tasks, the separate release build target, and analyzer tests dotnet targets.

    22.7.7release notes

  • Declares obj as a publish output to fix a sandbox violation in dotnet tasks.

    22.7.7release notes

  • Publishing falls back to npm publish when bun publish fails with an authentication error.

    22.7.3release notes

  • The conversion output more faithfully reflects the original configuration.

    22.7.3release notes

  • Results from createNodes plugins preserve their input order.

    22.7.3release notes

  • Directory.*.* files are included in .NET inputs.

    22.7.3release notes

  • Dollar signs in file paths are no longer escaped on Windows.

    22.7.3release notes

  • Local plugin subpath imports resolve from source without requiring custom conditions.

    22.7.3release notes

  • The runtime is added only on the vitest-analog path.

    22.7.3release notes

  • Undefined task parallelism is treated as parallel when scheduling.

    22.7.3release notes

  • Only workspace-package peer dependencies are rewritten to workspace:*.

    22.7.3release notes

  • Maven batch recording skips attached artifacts that fail to materialize.

    22.7.2release notes

  • Skipped batch tasks are supported end-to-end, and TUI double logs are fixed.

    22.7.2release notes

  • Testing handles absolute paths for Cypress screenshotsFolder and videosFolder.

    22.7.2release notes

  • Glob syntax is stripped from inferred outputs before resolving them as paths.

    22.7.2release notes

  • Maven 4 build state recording is serialized.

    22.7.2release notes

  • Internal re-exports are expanded for the cherry-picked v23 deep-import migration.

    22.7.2release notes

  • Corrects output paths for .NET Web SDK and centralized dist setups.

    22.7.2release notes

  • Pruned pnpm lockfiles include transitive workspace dependencies.

    22.7.2release notes

  • Angular Rspack keeps root-scoped assets out of per-locale i18n output.

    22.7.2release notes

  • The run summary now shows the flaky-task count.

    22.7.2release notes

  • Rollup includes the tsconfig solution input.

    22.7.2release notes

  • Webpack includes the tsconfig solution input.

    22.7.2release notes

  • Task selection stays in the in-progress section.

    22.7.2release notes

  • Verbose logs go to stderr, and daemon logs are properly decorated.

    22.7.2release notes

  • The Gradle integration supports Windows file paths.

    22.7.2release notes

  • The migration preserves other properties.

    22.7.2release notes

  • Release handling now accepts short and full project names in commit scopes.

    22.7.1release notes

  • Generated .detoxrc files now contain valid JSON for non-Expo apps.

    22.7.1release notes

  • The handoff now uses require so global-to-local Nx execution works with Windows drive paths.

    22.7.1release notes

  • Conversion now handles executor-based jest.config.ts files and preserves type-only imports.

    22.7.1release notes

  • The scaffold now includes the tsconfig input.

    22.7.1release notes

  • When pre-install fails with npm peer dependency errors, migrations now provide actionable feedback.

    22.7.1release notes

  • Continuous children now stay alive when the nx:noop orchestrator completes.

    22.7.1release notes

  • The command now surfaces stderr and forces devDependencies installation.

    22.7.1release notes

  • Version lookups now resolve pnpm catalog: references.

    22.7.1release notes

  • The linter now detects a root lint target added during the same generator run.

    22.7.1release notes

  • Stories and specs are now excluded from Tailwind content scanning.

    22.7.1release notes

  • Typecheck inputs now include extended tsconfigs from project references.

    22.7.1release notes

  • The Angular rspack module federation plugin enables ESM output.

    22.6.2, 22.7.0release notesrelease notes

  • Variables in .env files can reference variables defined in other files.

    22.6.5, 22.7.0release notesrelease notes

  • The command accepts --target/-t and -p flags when using colon targets.

    22.7.0release notes

  • Nx supports pnpm multi-document lockfiles.

    22.7.0release notes

  • The executor now supports npm workspaces.

    22.7.0release notes

  • React Router apps can use Vite 8.

    22.7.0release notes

  • Project graph recalculation no longer causes Gradle and Maven daemon accumulation.

    22.6.5release notes

  • The batch executor no longer hangs when a worker exits prematurely.

    22.6.5release notes

  • Plugin loading failures now display the actual error message.

    22.6.5release notes

  • Validates the bundler option for Angular presets, helping catch invalid options when creating a workspace.

    22.6.4release notes

  • Handles "." and absolute paths as workspace names when creating a workspace.

    22.6.4release notes

  • The dependency-checks lint rule recognizes tsgo.

    22.6.4release notes

  • Preserves sibling dependency inputs in native hashing, avoiding changes to the inputs used for hashing.

    22.6.4release notes

  • Disables prompts during migrate when non-interactive mode is enabled.

    22.6.4release notes

  • Handles non-interactive mode in create-nx-workspace and adds template shorthand names.

    22.6.4release notes

  • Uses Vite 7 when React Router is used in framework mode.

    22.6.4release notes

  • The command handles non-interactive mode.

    22.6.3release notes

  • The command adds template shorthand names.

    22.6.3release notes

  • The TypeScript plugin adds the {projectRoot} prefix to its d.ts fileset.

    22.6.3release notes

  • Duplicate migration keys are updated.

    22.6.2release notes

  • The rebuild chunks emitted summary is made accurate.

    22.6.2release notes

  • Declaration files in dependency projects are included as inputs.

    22.6.2release notes

  • Framework configs are prepended before baseConfig.

    22.6.2release notes

  • Prevent double installation in TypeScript solution workspaces.

    22.6.2release notes

  • Timeouts prevent the CLI from hanging during the GitHub push flow.

    22.6.2release notes

  • Test enums are ignored when atomizing.

    22.6.2release notes

  • Skips import-equals namespace aliases.

    22.6.2release notes

  • Resolves the published nx migrate package correctly.

    22.6.2release notes

  • References are handled when projects are moved or removed.

    22.6.2release notes

  • The parallel limit is respected for discrete task concurrency.

    22.6.2release notes

  • Runtime inputs are no longer cached at the task_hasher layer; filesets belong in the hash_plans layer.

    22.6.2release notes

  • Handles projects with colons in their names better.

    22.6.2release notes

  • SWC input source map resolution is disabled.

    22.6.2release notes

  • The TypeScript plugin passes configName to the typecheck command.

    22.6.2release notes

  • Resolves the addPlugin default in the init generator.

    22.6.2release notes

  • Is skipped when the global bin hands off to the local bin.

    22.6.2release notes

  • For Nx plugins, the conversion now uses native nx.configs.

    22.6.1release notes

  • The rule now detects require() calls.

    22.6.1release notes

  • The migration now gracefully handles broken Jest configs.

    22.6.1release notes

  • The preset now handles undefined options.

    22.6.1release notes

  • The hook now fires on SIGINT for continuous tasks.

    22.6.1release notes

  • Project-level ESLint configs are converted, and skipped configs are logged.

    22.6.1release notes

  • The plugin now uses the root config to determine the ESLint class.

    22.6.1release notes

  • nx show target now displays the continuous property.

    22.6.0release notes

  • The rule now allows wildcard paths.

    22.5.3, 22.6.0release notesrelease notes

  • Nx supports ESLint v10.

    22.5.3, 22.6.0release notesrelease notes

  • Nx cloud commands can run outside of a workspace.

    22.6.0release notes

  • Filtered releases include dependent projects in the release commit message when using --projects.

    22.6.0release notes

  • Filtered project lists no longer produce duplicate projects in the changelog.

    22.6.0release notes

  • Vitest resolves reportsDirectory against the workspace root.

    22.6.0release notes

  • The Vitest executor now respects reporters set in target options.

    22.5.4, 22.6.0release notesrelease notes

  • Resolves false positive loop detection when running with Bun.

    22.5.4release notes

  • Batch runner output is also sent to stderr so it displays in the terminal.

    22.5.4release notes

  • GitHub user/repo slug extraction now supports canonical SSH URLs.

    22.5.4release notes

  • Detection falls back to invoking the package manager when needed.

    22.5.4release notes

  • The angular-rspack output uses a relative path.

    22.5.4release notes

  • Ensures atomized task targets have dependsOn.

    22.5.3release notes

  • Gradle uses globs for dependent task output files.

    22.5.3release notes

  • The release schema now allows null values for dockerVersion.

    22.5.3release notes

  • Fixes setting the pom file without changing the base directory.

    22.5.3release notes

  • Fixes process.env usage and ensures safe fallback replacement in webpack.

    22.5.3release notes

  • The nx-welcome component uses SASS indented syntax when the selected style is sass.

    22.5.3release notes

  • When skipTypeCheck is true in TS Solution Setup, Nx skips the unnecessary type-check.

    22.5.3release notes

  • createGitTagValues now uses a null-safe fallback for version.

    22.5.3release notes

  • Sets isPreview=true for the Vite Preview server.

    22.5.3release notes

  • The watch command works when both all and initialRun are specified.

    22.5.3release notes

  • Path resolution uses the workspace root when baseUrl is not set.

    22.5.2release notes

  • Handles Ctrl+C gracefully and only pulls from latest when the local version is not latest.

    22.5.2release notes

  • The daemon skips stale recomputations and prevents file changes from being lost.

    22.5.2release notes

  • Ignore files are matched by path component according to gitignore behavior.

    22.5.2release notes

  • Writes output after each task in batch mode so the correct files are cached.

    22.5.2release notes

  • TUI logger initialization is gated behind the NX_TUI environment variable.

    22.5.2release notes

  • New workspaces no longer generate nxCloudId.

    22.5.2release notes

  • Resets the daemon client after project graph creation.

    22.5.2release notes

  • Cache restore now handles dangling symlinks.

    22.5.1release notes

  • Running configure-ai-agents no longer overrides MCP arguments.

    22.5.1release notes

  • makeAcyclic no longer drops unrelated continuous dependencies.

    22.5.1release notes

  • Maven locators are now correctly mapped to Nx project names.

    22.5.1release notes

  • Pressing [1] or [2] removes a pinned pane when it matches the current task.

    22.5.1release notes

  • Runtime cache keys are now deterministic.

    22.5.1release notes

  • Nx now shows help for run-one when project short names are used.

    22.4.5, 22.5.0release notesrelease notes

  • All task outputs are tracked regardless of path depth.

    21.3.12, 22.5.0release notesrelease notes

  • Batch output is no longer overridden for atomized targets.

    22.4.5release notes

  • Uses flags compatible with the Gradle tooling API.

    22.4.3release notes

  • Already-installed Nx packages are hidden from the suggestion list during import.

    22.4.3release notes

  • Improves plugin worker error messages and lifecycle timeouts.

    22.4.3release notes

  • Avoids throwing when worker.stdout is not an instance of a socket.

    22.4.3release notes

  • Resizing is handled better for inline_tui.

    22.4.2release notes

  • Nx falls back to node_modules when the temporary directory has noexec.

    22.4.2release notes

  • Cleans up the daemon workspace data directory when running nx reset with the noted option.

    22.4.1release notes

  • Avoids a hang in the TUI by moving it to a parking lot rwlock.

    22.4.1release notes

  • Cypress TypeScript configuration sets moduleResolution to node to prevent TS5095 errors.

    22.4.0release notes

  • The migration command now supports updating the @angular/cli package.

    22.3.2, 22.4.0release notesrelease notes

  • Target inference is skipped for root workspace configs that use projects.

    22.4.0release notes

  • getDependencies skips external dependencies that are not npm dependencies.

    22.3.2release notes

  • Ensures the Jest v30 migration is run.

    22.3.2release notes

  • React module federation setup with webpack and TypeScript solutions is corrected.

    22.3.2release notes

  • Flat config now honors setParserOptionsProject.

    22.3.2release notes

  • Fixes Vitest test runner options for Angular in cnw.

    22.3.2release notes

  • Fixes the dependency graph for multi-targeting and transitive dependencies in .NET projects.

    22.3.1release notes

  • Nx no longer shows a TUI when running a single task.

    22.3.1release notes

  • create-nx-workspace templates support pnpm and yarn.

    22.2.2, 22.3.0release notesrelease notes

  • Nx exits with an error when generator prompts fail.

    22.3.0release notes

  • Restores the linkTaskDetails parameter for backwards compatibility.

    22.2.5, 22.3.0release notesrelease notes

  • NodeNext is now recognized as ESM.

    22.2.2, 22.3.0release notesrelease notes

  • Prevents a crash when terminating a task that uses the SWC executor.

    22.2.4, 22.3.0release notesrelease notes

  • PNPM patches are now included in externalDependencies hash computations.

    22.2.6, 22.3.0release notesrelease notes

  • Changes to pnpm.overrides and overrides in package.json are now detected.

    22.3.0release notes

  • Generated Prisma clients can now be copied as assets from node_modules.

    22.3.0release notes

  • Expo SDK 54+ compatibility sets projectRoot to workspaceRoot.

    22.2.3, 22.3.0release notesrelease notes

  • Interpolates {releaseGroupName} in changelog tag and releaseTagPattern.

    22.2.4, 22.3.0release notesrelease notes

  • The Node webpack configuration maps the sourceMaps option to sourceMap.

    22.2.4, 22.3.0release notesrelease notes

  • The Node plugin uses @swc/helpers instead of tslib when the compiler is SWC.

    22.2.7, 22.3.0release notesrelease notes

  • Task output is displayed in the TUI when the native command runner is disabled.

    22.2.7release notes

  • The TUI prevents pinning the same task in multiple panes.

    22.2.7release notes

  • Changes to overrides in package.json are now detected.

    22.2.6release notes

  • Changes to pnpm.overrides are now detected.

    22.2.6release notes

  • When project.json exists but has no name, Nx now checks package.json for the project name.

    22.2.6release notes

  • Stdout and stderr handling was adjusted to support the latest @swc/cli version.

    22.2.6release notes

  • The connectUrl value is included in completion metadata.

    22.2.5release notes

  • All tables are created upfront when the database is created.

    22.2.5release notes

  • Migration now collects known tsconfig files from non-buildable Angular libraries.

    22.2.4release notes

  • The error message is improved when generating Cypress component tests with esbuild-based build targets.

    22.2.4release notes

  • The node executor resolves the Nx binary from the workspace root.

    22.2.4release notes

  • Generated Nest libraries now use the correct outputPath for TypeScript solution setups.

    22.2.4release notes

  • Nx no longer invokes Prettier with both flags when that combination is unsupported.

    22.2.4release notes

  • Port availability is checked before remote proxies start.

    22.2.4release notes

  • The TUI summary now preserves command output for tasks that are not cached.

    22.2.4release notes

  • Workspace packages are handled when nx.name differs from package.json.name.

    22.2.4release notes

  • Passes more error detail for CNW.

    22.2.3release notes

  • Fixes the missing SWC register base URL when using tsgo.

    22.2.3release notes

  • Updates the jest ci target to forward top-level arguments.

    22.2.2release notes

  • Displays pnpm publish errors without requiring verbose mode.

    22.2.2release notes

  • Enables build mode for the TypeScript checker in TS solution setups.

    22.2.2release notes

  • Corrects the project path used when creating a temporary TypeScript configuration.

    22.2.1release notes

  • Processes only in-progress entry points, avoiding processing unrelated entry points during the write bundles transform.

    22.2.1release notes

  • Normalizes workspace protocol versions in requiredVersion for module federation.

    22.2.1release notes

  • Task results now always provide terminalOutput as a string.

    22.2.1release notes

  • Updates the worker configuration generated by the Vite generator to follow Vite's configuration.

    22.2.1release notes

  • Webpack chunks are shown when verbose output is enabled.

    22.2.1release notes

  • Nx kills the child process tree for different running tasks.

    21.6.10, 22.1.3, 22.2.0release notesrelease notesrelease notes

  • Workspace module copying now includes transitive workspace dependencies.

    22.1.2, 22.2.0release notesrelease notes

  • The daemon command exits when it reaches the end.

    22.1.1, 22.2.0release notesrelease notes

  • The Expo integration supports Expo 54.

    22.2.0release notes

  • The linter now handles various flat config override structures.

    20.8.3 … 22.2.0release notesrelease notesrelease notesrelease notes

  • The Nuxt integration supports Nuxt 4.

    22.2.0release notes

  • The prompt no longer blocks non-interactive commands.

    22.2.0release notes

  • Project names are sanitized to produce valid Git tag names.

    22.2.0release notes

  • The Cypress commands template no longer includes a declare global wrapper.

    22.1.2release notes

  • Nest sets moduleResolution to node to prevent a TS5095 error.

    22.1.2release notes

  • The upper bound on migration requirements is removed.

    22.1.2release notes

  • Task graph client errors are surfaced through an error toast.

    22.1.2release notes

  • The graph exclude flag now uses findMatchingProjects to align with other exclude flags.

    22.1.1release notes

  • The generator excludes Tailwind from CSS modules syntax.

    22.1.1release notes

  • STORYBOOK_PROJECT_ROOT is removed when running automigrate to prevent hanging.

    21.6.10, 22.1.1release notesrelease notes

  • Jest 30 and later use .cts config files to fix __dirname issues.

    22.0.3, 22.1.0release notesrelease notes

  • The default input is now correctly treated as the default.

    22.1.0release notes

  • Arguments containing spaces are no longer split when executing through the nx wrapper.

    22.0.3, 22.1.0release notesrelease notes

  • Renders commit titles that include breaking changes.

    22.0.4release notes

  • Handles ERR_USE_AFTER_CLOSE gracefully during workspace creation.

    22.0.4release notes

  • Fixes a lockfile cache regression involving keyMap state.

    22.0.4release notes

  • Skips Maven plugin computation on Vercel and Netlify.

    22.0.4release notes

  • Captures stderr to provide better error messages.

    22.0.4release notes

  • Handles ERR_USE_AFTER_CLOSE gracefully during nx init.

    22.0.4release notes

  • Prevents the process from hanging between command completion and process exit.

    22.0.4release notes

  • Includes require paths when resolving specified plugins.

    22.0.4release notes

  • The eslint-config-next version is made to match Next.js 14 and 15 versions.

    22.0.3release notes

  • Local workspace dependencies are correctly identified on Windows.

    22.0.3release notes

  • Maven dependencies are resolved from project roots.

    22.0.3release notes

  • Nx also looks in the .nx installation when reading nx.json extends.

    22.0.3release notes

  • Handles null exit codes from crashed child processes.

    21.6.7, 22.0.2release notesrelease notes

  • Docker plugin interpolation now guards against a null commitSha.

    22.0.2release notes

  • Handles a Dockerfile located at the project root when determining the tag.

    22.0.2release notes

  • Execution continues when the cloud client is unavailable.

    21.6.7, 22.0.2release notesrelease notes

  • Importing @nx/webpack no longer errors when TypeScript is not installed.

    22.0.2release notes

  • Invalid workspaceRoot placement now produces a clearer error instead of an error message containing [object Object].

    21.6.7, 22.0.2release notesrelease notes

  • Adds the error reason to output.

    22.0.1release notes

nx 2115 changes

Breaking changes 1

Fixes and other changes 14

  • The linter now handles variable references in replaceOverride.

    20.8.4, 21.6.11release notesrelease notes

  • Ensures node execute completes before exit.

    21.6.9release notes

  • Prevents a crash caused by an undefined importer while parsing a pnpm lockfile.

    21.6.7release notes

  • Nx no longer prints flaky tasks guidance when Nx Cloud is already enabled.

    21.6.6release notes

  • Angular Rspack module federation now supports live reload.

    21.6.6release notes

  • Sets ng-packagr tsconfig options correctly based on the version in use.

    21.6.6release notes

  • Restores migrations used by nx repair.

    21.6.6release notes

  • Vite logic prevents overwriting a generated package.json.

    21.6.6release notes

  • Adding a project.json file to a project no longer changes its existing project name.

    21.6.6release notes

  • Includes the root node_modules directory when resolving packages in Angular Rspack.

    21.6.6release notes

  • Improves the message shown for unsupported TypeScript project references.

    21.6.6release notes

  • The --help flag now works properly with infix notation.

    21.6.5release notes

  • Dynamic module federation no longer initializes remoteUrlDefinitions to an empty object.

    21.6.5release notes

  • The bottom corner indicator is now displayed correctly in the TUI progress section.

    21.6.5release notes