本文提供了从 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 版本。