Deno 生态有哪些主流库和工具?
Deno 2.x 的生态已从早期的 deno.land/x 过渡到 JSR(JavaScript Registry)作为主力包注册表,同时通过 npm: 前缀直接引用约 98% 的 npm 包。Web 框架首选 Hono(轻量、跨 Deno/Bun/Cloudflare Workers 运行时)和 Oak(Koa 风格中间件),Fresh 是官方全栈框架但社区活跃度一般。数据库层 Drizzle ORM 是目前最成熟的 TypeScript ORM,支持 PostgreSQL/MySQL/SQLite。Deno KV 是内置键值存储,零依赖适合轻量场景。认证用 djwt 处理 JWT,@deno/kv-oauth 做 OAuth2。工具链全部内置——fmt、lint、test、compile、doc 一条命令搞定,Deno 2 还新增了 pack、bump-version、ci 等子命令。部署用 Deno Deploy,免费额度每天 10 万请求、35+ 边缘节点零冷启动。
追问
JSR 和 npm 有什么区别?
JSR 是 Deno 主导的 TypeScript 优先注册表,源码直接发 TS 无需编译,自动为 npm 生态生成兼容包。npm 以 CommonJS/编译后 JS 为主。Deno 两个都能用:JSR 用 jsr: 前缀,npm 用 npm: 前缀。新项目优先发 JSR,兼容两边的开发者。
Hono 和 Oak 怎么选?
Hono 更轻量、跨运行时,中间件生态丰富,适合 API 和边缘计算场景。Oak 是 Deno 专属框架,API 接近 Koa 学习成本低,但生态不如 Hono。新项目建议 Hono,已有 Koa 经验的团队可以快速上手 Oak。
Deno KV 能替代 Redis 吗?
轻量场景可以:键值读写、原子操作、版本控制都支持,零依赖开箱即用。但不支持 TTL 自动过期、没有 pub/sub、查询只有前缀扫描。需要过期策略或发布订阅时还是得接 Redis。
从 Node.js 迁移到 Deno 难吗?
Deno 2 已支持 ~98% 的 npm 包,大部分依赖加 npm: 前缀就能跑。主要差异:文件系统用 Deno.readTextFile 而非 fs.readFile;运行时需要 --allow-net 等权限标志。依赖 sharp、bcrypt 等 Node 原生模块的项目可能有兼容问题,建议先用 deno info 检查依赖树。
Deno Deploy 和传统服务器部署哪个好?
Deno Deploy 适合无状态 API 和边缘计算,全球 35+ 节点低延迟,免费额度 generous。限制:WebSocket 连接有超时、无持久文件系统、不支持长驻进程。传统 VPS/容器部署更灵活,适合需要完整运行时的项目。两者不冲突,API 层 Deploy + 重计算层 VPS 是常见搭配。