由 Harminder Virk 维护的 AdonisJS(一款“开箱即用的 Node.js 框架)发布 7.0 版本,其核心亮点是端到端类型安全,此外还包含经过重构的项目模板、零配置可观测性,以及全新改版的文档网站。
该版本更新了超过 45 个包,并新引入了三个包:用于 OpenTelemetry 集成的 @adonisjs/otel、用于类型化内容集合的 @adonisjs/content,以及用于在 Edge 模板中使用组件语法渲染 Markdown 的 edge-markdown。
v7 的核心是一套通过代码生成贯穿整个应用技术栈的类型系统。路由定义会生成 TypeScript 类型,供新的 urlFor 辅助函数使用,从而取代了 v6 中未声明类型的 router.makeUrl 方法。Transformer 提供了一个专用的序列化层,可以在构建时生成 .d.ts 文件,使前端代码能够通过类型安全的方式访问 API 响应结构,而且无需手动复制代码。对于 Inertia 应用程序,框架会扫描页面组件,确保 inertia.render 在编译时传递了正确的 props。由 Tuyau 驱动的类型安全 API 客户端将同样的保障扩展至使用 TanStack Query 或 plain fetch 的独立前端项目。
v7 依赖 Node.js 24 及以上版本,这使得团队能够用原生平台 API 替代第三方依赖。dotenv 包已经被 Node 内置的 util.parseEnv 所取代。同时,一个新引入的内部 JIT TypeScript 编译器 ts-exec(以基于 Rust 的 SWC 编译器为基础构建,大小约为 15 KB)取代了用于开发的 ts-node。
项目模板经过全面重构。与以往通过一系列配置问题引导开发人员不同,v7 提供了四个预设方案(Hypermedia、API、React 和 Vue)。这些模板都是开箱即用的,其中已经包含身份验证流程、会话管理以及前端工具链。该框架还引入了针对控制器、事件和策略的批量文件生成功能,消除了此前在路由文件顶部堆积如山的懒加载导入语句。
社区反响非常积极。在 LinkedIn 上,一位开发人员这样评价 v7:
当前 TypeScript 优先后端开发的“最佳平衡点(Sweet Spot)”
他还补充说:
如果你来自 Laravel 阵营,或者只是厌倦了在 Express/NestJS 中拼凑 20 多个包,AdonisJS 将为你带来“开箱即用的魔法”。
Reddit 上的一位新用户分享了使用该框架启动一个项目有多快,并补充说他们对迁移到 v7 版本有些担心。
我也意识到,我启动这个项目的时间可能正好在 v7 发布之前,所以如果我想要进行迁移的话,希望过程不会太麻烦。
库作者 Harminder Virk 直接做了回复:
很高兴听到你喜欢 AdonisJS。从 v6 升级到 v7 会非常顺利,因为几乎没有任何破坏性变更。可能只需要 15 到 20 分钟。
AdonisJS 与 NestJS 和 Laravel 等框架所处的领域相似,其不同之处在于特点鲜明的开发理念(遵循“约定优于配置”原则),以及对 TypeScript 的原生支持。NestJS 倾向于采用 Angular 风格的依赖注入和装饰器,而 AdonisJS 则更多地借鉴了 Laravel 的传统,提供了一个涵盖路由、ORM、身份验证、数据验证和邮件处理的完整工具包,并将这些功能整合在一个统一的框架之下。
对于从 v6 版本升级的团队,这些破坏性变更主要属于技术层面的调整,包括重新命名的导入项、经过更新的配置文件以及一个新的加密模块。AdonisJS 团队预计,大多数应用程序可以在 30 分钟至 1 小时内完成迁移。他们提供了详细的升级指南以及专门的 GitHub 讨论帖供用户报告问题。
AdonisJS 是一个由 Harminder Virk 创建并维护的、功能完备的开源 Node.js Web 框架。它深受 Laravel 传统的影响,提供了一个遵循“约定优于配置”原则的统一工具集,涵盖路由、ORM(Lucid)、身份验证、数据验证、邮件处理和模板引擎等功能,并全程支持 TypeScript。
原文链接:https://www.infoq.com/news/2026/05/adonis-v7-opentelemetry/





