推出 Turborepo NestJS + Qwik City 模板
内容提要
这篇文章介绍了一个新的模板,将NestJS用于后端,Qwik City用于前端,PostgreSQL用作数据库,DrizzleORM用于无缝数据库交互。该模板还包括了@tnq/backend、@tnq/client和@tnq/types等功能。主要特点包括全面支持TypeScript、Monorepo架构以及Biome用于代码检查和格式化。
延伸解读
模板的组成与分工
该模板将后端、前端和共享类型拆分为三个包:@tnq/backend 是基于 NestJS 和 DrizzleORM 的应用,@tnq/client 是使用 Qwik City 的前端应用,@tnq/types 则集中存放共享类型。这种划分让前后端可以独立开发,同时通过共享类型包保持类型定义一致,减少重复声明。
Monorepo 与工具链选择
模板采用 Turborepo 管理 Monorepo,所有应用和包都使用 TypeScript。代码检查与格式化方面,大部分项目使用 Biome,但客户端应用因 Qwik 支持尚未完善而改用 ESLint 和 Prettier。这意味着工具链并非完全统一,使用前需留意客户端与其他包在配置上的差异。
数据库交互方式
模板选用 PostgreSQL 作为数据库,并通过 DrizzleORM 实现数据库交互。DrizzleORM 被集成在 @tnq/backend 中,为 NestJS 应用提供类型安全的查询能力。对于希望在后端保持 TypeScript 类型连贯性的项目,这一组合可以减少手写 SQL 与类型定义之间的脱节。
Q&A
这个模板的后端使用了什么技术?
后端使用了NestJS和DrizzleORM。
前端部分是基于什么框架的?
前端部分基于Qwik City框架。
这个模板支持哪种数据库?
该模板使用PostgreSQL作为数据库。
模板中如何实现数据库交互?
使用DrizzleORM实现无缝数据库交互。
这个模板是否支持TypeScript?
是的,模板全面支持TypeScript。
该模板采用了什么样的项目管理架构?
该模板采用Monorepo架构,简化项目管理。