NestJS v10 最新功能解读

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

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

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

有什么新变化?

最近 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 项目迁移到最新版本,请点击以下链接:

结论

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

猜你喜欢

转载自blog.csdn.net/jslygwx/article/details/132431344
今日推荐