迁移指南 Migration guide

导读

本文提供了从 Nest 版本 9 迁移到版本 10 的一组指南。 要了解有关我们在 v10 中添加的新功能的更多信息,请查看此文章。 有一些非常小的重大更改不会影响大多数用户 - 您可以在此处找到它们的完整列表。

升级软件包

虽然您可以手动升级软件包,但我们建议使用 ncu (npm check updates)

缓存模块

CacheModule 已从 @nestjs/common 包中删除,现在可作为独立包使用 - @nestjs/cache-manager。进行此更改是为了避免 @nestjs/common 包中不必要的依赖项。您可以在 此处 了解有关 @nestjs/cache-manager 包的更多信息。

弃用

所有弃用的方法和模块都已删除。

CLI 插件和 TypeScript >= 4.8

NestJS CLI 插件(适用于 @nestjs/swagger@nestjs/graphql 包)现在需要 TypeScript >= v4.8,因此旧版本的 TypeScript 将不再受支持。进行此项更改的原因是 TypeScript v4.8 在其用于自动生成 OpenAPI 和 GraphQL 模式的抽象语法树 (AST) 中引入了几项重大变更

放弃对 Node.js v12 的支持

从 NestJS 10 开始,我们不再支持 Node.js v12,因为 v12 已于 2022 年 4 月 30 日 EOL。这意味着 NestJS 10 需要 Node.js v16 或更高版本。做出此决定是为了让我们最终在 TypeScript 配置中将目标设置为ES2021,而不是像过去那样运送 polyfill。

从现在开始,每个官方 NestJS 包都将默认编译为ES2021,这应该会导致库大小更小,有时甚至(略微)性能更好。

我们还强烈建议使用最新的 LTS 版本。