NestJS v10 最新功能解读

NestJS v10 来了!这个渐进式 Node.js 框架提供了高效、可靠和可扩展的服务器端应用程序构建。

根据StackOverflow Developer的调查,NestJS是世界上最受欢迎的10个后端框架之一。在此处查看调查结果。

它的 Github 仓库中有超过 58k Star。

目录

  • 有什么新变化?
    • SWC 集成
    • Redis 通配符订阅
  • 改进或更改了哪些内容?
    • 对缓存模块的更改
    • 在测试中覆盖模块
    • CLI 插件和 TypeScript >= 4.8
    • 放弃对 Node.js v12 的支持
  • 迁移指南
  • 结论

有什么新变化?

最近 NestJS 正式发布了 v10,用于构建高效和企业级的服务器端应用程序。让我们深入了解一下新版本的新功能。

SWC 集成

SWC 代表 Speedy Web Compiler。它是一个可扩展的基于 Rust 的平台,可用于编译和捆绑。为了加快您的开发过程,将SWC与NestJs CLI一起使用是一个很好的方法。

所需软件包的安装如下:

$ npm install --save-dev @swc/cli @swc/core

您现在可以将SWC与NestJs CLI一起使用,如下所示:

$ nest start -b swc 
# or
$ nest start --builder swc

默认情况下使用 SWC 的另一种方法是通过 nest-cli.json 文件,如下所述:

{
    "compilerOptions": {
        "builder": "swc"
    }
}

默认情况下,SWC 本身不执行任何类型检查,因此要启用此选项,我们需要使用 --type-check flag,如下所述:

$ nest start -b swc --type-check 
# or 
$ nest start --builder swc --type-check

SWC 比默认的 TypeScript 编译器快大约 20 倍。

Redis 通配符订阅

添加了对 Redis 通配符订阅的支持。此功能允许订阅与给定模式匹配的所有消息。

要开始使用基于 Redis 的微服务,请按如下所示安装所需的包:

$ npm install ioredis

默认情况下,通配符订阅是 false, 启用通配符订阅

const app = await NestFactory.createMicroservice(AppModule, {
  transport: Transport.REDIS,
  options: {
    host: 'localhost',
    port: 6379,
    wildcard: true, // this is the new option available
  },
});

启用通配符后,我们可以在订阅中使用 glob 类型模式,例如:

  • ne?tjs 订阅 nestjsnextjsnuxtjs
  • ne*tjs 订阅 netjsneetjs

改进或更改了哪些内容?

除了新的变化,NestJS 的最新 v10 也有一些改进。

对缓存模块的更改

缓存是提高应用性能的一种伟大而简单的技术。

现在 CacheModule 可作为独立包 @nestjs/cache-manager 提供。早些时候,此软件包在 @nestjs/common

要安装所需的软件包,请执行以下操作:

$ npm install @nestjs/cache-manager cache-manager

在测试中覆盖模块

v10 中引入了测试中模块的覆盖。当您想要一次模拟整个模块而不是单独模拟每个提供程序时,此功能非常有用。

CLI 插件和 TypeScript >= 4.8

NestJS CLI 插件现在需要 TypeScript >= v4.8。这是由于 TypeScript v4.8 中的重大更改。

放弃对 Node.js v12 的支持

由于 Node.js v12 进入生命周期结束 (EOL),要使用 NestJS v10 的新功能,需要 Node.js v16 或更高版本的最低版本。

这也允许 NestJS 包默认编译为 ES2021,从而减小库大小并提高性能。

迁移指南

要将现有的 NestJS 项目迁移到最新版本,请点击以下链接:

  • 从 v9 迁移到 v10: https://docs.nestjs.com/migration-guide
  • 从 v8 迁移到 v9: https://docs.nestjs.com/v9/migration-guide
  • 从 v7 迁移到 v8: https://docs.nestjs.com/v8/migration-guide

结论

与旧版本相比,NestJS v10带来了许多令人兴奋和改进的新功能。如果您在项目中使用 NestJS,请通过评论分享。

你可能感兴趣的:(javascript,ecmascript,开发语言)