npm / @nestjs/cli
@nestjs/cli
What changed in @nestjs/cli 11 to 12, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.
9 breaking4 deprecations25 new APIs and options8 behavior and defaults11 tooling34 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@nestjs/cli 1268 changes
Breaking changes 7
The compiler now resolves the SWC source root separately for each application.
The angular schematic has been removed.
Build output and cleanup paths are confined to the project directory by default; symlinks are resolved before writing to prevent writes escaping the project.
CLI schematics for nest new, nest generate, and nest upgrade require Node.js v22.22.3+, v24.15+, or v26+; nest upgrade refuses to run on older releases.
An invalid
--buildernow produces a non-zero exit.Programmatic imports of CLI internals now resolve to ESM; the package is published as pure ESM.
webpack and related bundler packages are optional peer dependencies rather than bundled dependencies; webpack users must install the bundler packages themselves.
Deprecations 4
The webpack CLI flag is deprecated in favor of --builder rspack.
The nest-cli.json webpack option is deprecated in favor of --builder rspack.
The nest-cli.json webpack configuration path option is deprecated in favor of --builder rspack.
The webpack configuration path flag is deprecated in favor of --builder rspack.
New APIs and options 24
Asset entries can opt out of triggering a restart when they change.
Allows monorepo layouts to emit build output outside the project root.
Adds an option to emit .d.ts files when using the SWC builder.
Supports
--builder rspackto build with Rspack.Adds an option that overrides the config-level type-check setting.
Adds emitDeclarations to enable .d.ts file emission when using the SWC builder.
Adds includeLibraryAssets for copying library assets into an application build.
Adds a deploy command that forwards to Mau and installs @nestjs/mau as a dev dependency on first use.
Adds formatting of generated files with Prettier.
Adds
--observeand--no-observeto answer the @nestjs/observe prompt.Adds an option to scaffold a project without testing files.
Supports
--builder rspackto start with Rspack.Adds
nest updateas an alias fornest upgrade.Adds an option to choose a collection for the upgrade.
Previews the upgrade report without touching project files.
Adds
--observeand--no-observeto answer the @nestjs/observe prompt up front.Adds an option to skip installation during the upgrade.
Adds a dist-tag option for choosing a tag such as
nextinstead of the default version ranges.Adds an option to explicitly disable SWC type checking.
Adds parallel monorepo builds with optional concurrency when used with --all.
Adds
--crud [value]to the resource schematic.Adds
--type <rest|graphql|microservice>to the resource schematic.Adds a nest build and nest start option for specifying a Rspack configuration file.
Adds an option to suppress informational compiler logs.
Behavior and default changes 6
The default .gitignore template now includes *.tsbuildinfo.
All newly generated projects use oxlint by default.
Rspack becomes the default bundler for monorepos.
Source maps are enabled in the Rspack defaults.
Generated ESM projects use Vitest by default, while CommonJS projects continue to use Jest.
Asset changes restart the application in watch mode, with debouncing so a burst of writes triggers one restart.
Tooling 10
The compiler now resolves TypeScript path aliases from the tsconfig directory.
SWC emits ES modules for ESM projects.
Bundler config files now support native ESM.
Schematics are shown as a plain list on narrow terminals.
The CLI adds bun as a supported package manager.
The decorator schematic now generates decorators using the Reflector.createDecorator() form.
Displays an explicit message when no
@nestjs/*dependencies are declared.Prompts users to choose whether to generate a CommonJS or ESM project layout.
Upgrades recognized @nestjs/* packages together, installs them, applies mechanical migration changes, and prints a report of changes and behavioral notes.
Rspack is supported as an optional peer dependency and is the builder scaffolded into nest-cli.json for new projects.
Fixes and other changes 17
Preserves CommonJS entry exports in rspack and webpack builds.
Preserves parent links for aliased re-exports.
Webpack now resolves absolute tsconfig paths.
The compiler now forks the SWC type checker with the application's plugins.
SWC resolves path aliases from the tsconfig directory.
The CLI parses .swcrc with a JSONC parser to match SWC.
Dotfiles are now copied when expanding a directory asset.
ESM output now emits loadable path alias specifiers.
Plugin load errors are surfaced instead of being reported as "not compatible".
The compiler now resolves an absolute tsconfig path.
Watch mode now honors preserveWatchOutput from tsconfig.
Asset path stripping now follows the effective TypeScript
rootDir.When a builder's peer dependency is missing, the CLI reports the missing package name instead of a raw resolution error.
The
--parallelvalue is validated instead of potentially looping forever.Malformed configuration now produces a readable error.
SWC skips excluded files in builds and watch mode; newly added files no longer inherit watch mode when transpiled.
The file is removed when
deleteOutDiris set.
@nestjs/cli 1123 changes
Breaking changes 2
The compiler now fails fast when TypeScript lacks the programmatic API.
The CLI errors on unexpected extra positional arguments.
New APIs and options 1
Adds type and CRUD options to the generate command.
Behavior and default changes 2
Watch mode now skips signal forwarding.
The tsc compiler now runs the tsconfig paths plugin before user plugins.
Tooling 1
Expands the peer dependency range to include ^0.8.0.
Fixes and other changes 17
Removes a duplicated binary from the message shown when a command fails.
Reverts validation of asset output paths.
Reverts validation of delete output-directory paths before removal.
Validates asset output paths in the compiler.
The CRUD option accepts a value for generating entry points.
Fixes Windows path separator handling when loading plugins.
Fixes the inverted chokidar ignored filter in watch mode.
Corrected the Asset type definition from a string literal to a string union.
Fixed a missing space in the displayed OS version.
Path aliases are now resolved in declaration files.
Spec file suffix lookup now uses the selected project name.
Uses the ready event when closing the asset watcher.
The start command waits for asynchronous shutdown hooks to finish before exiting.
SWC now respects the root dir option when stripping leading paths.
The .tsbuildinfo file is deleted along with the output directory.
Prevents double initialization in SWC watch mode.
Uses synchronous spawn in tree-kill to fix a crash on Node.js 24.