NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3321 most downloaded on npm
Nest - modern, fast, powerful node.js web framework (@schematics)
Last release 6 days ago
28 Sep 2026
Release timing varies
gaps range from 9 days to 5 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
164 releases · first in 2018
fix(deps): update angular-cli monorepo to v22.2.0 by @renovate [bot] in #2464
Full Changelog: 12.0.5...12.0.6
One column per quarter.
fix(sub-app): rewrite only the test directory in the e2e script by @thekhegay in #2461
Full Changelog: 12.0.4...12.0.5
fix: bump the scaffolded @nestjs/observe to 0.3
chore(deps): update dependency vite to v8 by @renovate [bot] in #2450
Full Changelog: 12.0.2...12.0.3
fix: read the oxlint config, and run the rule it declares by @mhalikosen in #2432
Full Changelog: 12.0.1...12.0.2
fix(upgrade): avoid runtime ScriptTarget enum import from typescript
CLI config — migrates nest-cli.json builders from webpack to Rspack, drops the deprecated webpack: false option, updates affected package.json scripts…
@nestjs/schematics is now a native ES module, and the major version is aligned with the Nest 12 release line. Beyond the package itself going ESM, the bigger change is what it generates: nest new now scaffolds ESM applications by default, and a brand-new nest upgrade schematic migrates existing v11 projects to v12.
The package is published as pure ESM ("type": "module", compiled with NodeNext). All internal imports carry explicit .js extensions and the build output is ESM-only.
The package now requires Node.js >= 22.12.0 and declares a typescript >= 6.0.0 peer dependency. prettier ^3 remains an optional peer, used only when --format is passed.
You do not need to convert your tooling to ESM. Thanks to Node's require(esm) support, CommonJS consumers can still require('@nestjs/schematics') on the supported Node versions, so custom collections and CJS scripts that drive the schematics programmatically keep working unchanged.
nest new generates ESM by defaultThe application schematic gained a type option (esm | cjs) that defaults to esm:
Which module system would you like to use?
> ESM (ES Modules) [ with vitest ]
CJS (CommonJS) [ with jest ]
"type": "module", Vitest as the test runner (vitest.config.ts / vitest.config.e2e.ts), and "types": ["vitest/globals", "node"].package.json into a dedicated jest.config.ts.Pass --type cjs (or answer the prompt) to keep the classic CommonJS layout.
module/moduleResolution set to nodenext, resolvePackageJsonExports: true, isolatedModules: true, and target: ES2023.oxlint.json and a "lint": "oxlint src/ test/" script instead of the ESLint config and its plugin chain.nest-cli.json.@nestjs/common, @nestjs/core, @nestjs/platform-express, @nestjs/testing).Every element generator (module, controller, service, resource, middleware, pipe, …) now detects whether the target project is ESM and appends .js to generated relative imports accordingly — including the imports it injects into an existing @Module() when wiring up a newly generated element. CJS projects are unaffected.
nest upgradeA new schematic (aliased nest update) migrates a Nest v11 project to v12. It refuses to run on anything that isn't v11, then applies the migration in steps and prints a report of every change, every follow-up action, and every warning.
Dependencies — bumps all known @nestjs/* packages to ^12.0.0 (GraphQL packages to ^14.0.0), raises typescript to ^6.0.0 and engines.node to >=20.19.0, and reports any @nestjs/* package whose v12-compatible release it doesn't know about.
tsconfig — flags module: commonjs with legacy module resolution and any moduleResolution that TypeScript 6 dropped, and points out a missing rootDir in tsconfig.build.json (TS6 error TS5011).
@nestjs/config — moves library-specific validationOptions (Joi's allowUnknown, abortEarly, …) under validationOptions.libraryOptions, and raises joi to ^18 for its Standard Schema support.
GraphQL — renames the removed playground option to graphiql, and switches subscriptions-transport-ws over to graphql-ws, updating package.json to match.
NATS — rewrites nats imports to the v3 @nats-io packages and warns about the dropped StringCodec/JSONCodec helpers and the new packet serialization (custom deserializers now receive the full NATS message; read it with msg.json()).
Testing — raises jest, @types/jest, and ts-jest to Jest 30, and warns that because the Nest 12 packages are ESM-only, Jest can only require() them on Node.js 24.9+ (older versions fail with ERR_REQUIRE_ASYNC_MODULE).
CLI config — migrates nest-cli.json builders from webpack to Rspack, drops the deprecated webpack: false option, updates affected package.json scripts, and asks you to port any custom webpack config file by hand.
Diagnostics — scans the project and warns about the refined PipeTransform#transform signature and generic ArgumentMetadata, the new ConsoleLogger structured-params behaviour (opt out with structuredParams: false), and the change to lifecycle hook ordering by component hierarchy level.
Options: --observe, --skip-install, --tag <dist-tag>, --format.
@nestjs/observe integrationBoth nest new --observe and nest upgrade --observe can preconfigure the application with @nestjs/observe — distributed tracing, auto-correlated logs, metrics, and alarms. The schematic adds the dependency and wires createObserveModule() into the root module, then reminds you to set OBSERVE_APP_KEY and OBSERVE_APP_SECRET. It is opt-in and skipped when the package is already installed.
See the migration guide for the full picture.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
feat(schematics): add format option to run prettier before writing files by @yogeshwaran-c in https://github.com/nestjs/schematics/pull/2322
Full Changelog: https://github.com/nestjs/schematics/compare/11.0.10...11.1.0
Full Changelog: 11.0.10...11.1.0
fix: add after each app.close() to e2e template by @lrousseau-wanadev in #2313
Full Changelog: 11.0.9...11.0.10
refactor(eslint.config.mjs): configure prettier endOfLine to 'auto' for cross-platform compat… by @omarageorge in https://github.com/nestjs/schematics
Full Changelog: https://github.com/nestjs/schematics/compare/11.0.8...11.0.9
Full Changelog: 11.0.8...11.0.9
fix: default e2e tests by @Rei-x in https://github.com/nestjs/schematics/pull/2166
Full Changelog: https://github.com/nestjs/schematics/compare/11.0.7...11.0.8
Full Changelog: 11.0.7...11.0.8
Revert "fix(deps): update angular-cli monorepo to v20 (major)" by @kamilmysliwiec in https://github.com/nestjs/schematics/pull/2153
Full Changelog: https://github.com/nestjs/schematics/compare/11.0.6...11.0.7
Full Changelog: 11.0.6...11.0.7
fix: remove unused swc dependencies from ts project template #2073 by @Rnbsov in #2074
swc dependencies from ts project template #2073 by @Rnbsov in #2074Full Changelog: 11.0.5...11.0.6
chore: update eslint language options (app schematic)
chore(deps): update dependency typescript to v5.8.3
chore(deps): update dependency typescript to v5.8.2 by @renovate in https://github.com/nestjs/schematics/pull/2012
Full Changelog: https://github.com/nestjs/schematics/compare/11.0.2...11.0.3
Full Changelog: 11.0.2...11.0.3
fix(deps): update angular-cli monorepo to v19.2.0
fix(deps): update angular-cli monorepo to v19.1.7
NestJS v11 (migration guide https://docs.nestjs.com/migration-guide)
Nothing published for this version
Nothing published for this version
Merge pull request #1918 from micalevisk/refactor-remove-deprecated-node-apis
Merge pull request #1905 from nestjs/revert-1899-patch-1
forceConsistentCasingInFileNames for 'application' template" (8b4e2ec)chore: temporarily use web release
Merge branch 'BrunnerLivio-feature/use-env-port'
forceConsistentCasingInFileNames for 'application' template (052e658)chore(deps): update dependency @types/node to v20.16.1
fix: ts v5.5.4 incompatiblity #2662
Merge pull request #1808 from micalevisk/fix-controller-generator-edge-case
@Module decorator occurrence (3d2f361)Merge pull request #1640 from nestjs/renovate/reflect-metadata-0.x
test: update unit tests (devkit breaking change)
Merge pull request #1546 from nestjs/renovate/angular-cli-monorepo
Merge pull request #1502 from nestjs/renovate/angular-cli-monorepo
chore: upgrade application schematic deps
Merge pull request #1451 from nestjs/dependabot/npm_and_yarn/copy-props-2.0.5
Merge pull request #1390 from nestjs/renovate/cimg-node-20.x
Merge pull request #1319 from nestjs/renovate/angular-cli-monorepo
Merge pull request #1256 from devule/chore/files-format-fixes
sudo to global install npm@latest (e093ad5)rimraf dev dep in favor of CLI feature (72e5d87)start:prod script with sub apps (b8763e0)chore(): bump typescript version in the application schematic
Merge pull request #1105 from nestjs/renovate/jsonc-parser-3.x
chore(): upgrade schematics and cli versions
Merge pull request #1102 from nestjs/renovate/major-nest-monorepo
Merge pull request #1002 from nestjs/renovate/fs-extra-10.x
Merge pull request #989 from Tony133/chore/update-eslintrc
Merge pull request #970 from nestjs/renovate/angular-cli-monorepo
$schema entry on generated nest-cli.json files (ac6fecf)fix: remove deprecated package breaking npm lint
Merge pull request #938 from nestjs/renovate/npm-copy-props-vulnerability
packageManager (1708a62)Merge pull request #881 from nestjs/renovate/angular-cli-monorepo
Merge pull request #832 from nestjs/renovate/circleci-node-17.x
Your coding agent can read these notes before it upgrades. Set up the MCP server →