5月27日 20:12
Deno 标准库有哪些常用模块?
核心回答
Deno 标准库(@std)已稳定至 v1,现通过 JSR 分发,包含 37 个独立包。最常用的有:@std/fs(文件系统)、@std/path(路径处理)、@std/http(HTTP 服务)、@std/assert(断言测试)、@std/async(异步工具)、@std/encoding(编解码)、@std/collections(集合操作)、@std/fmt(格式化输出)。
导入方式已从 deno.land/std 迁移至 JSR:
typescript// 旧方式(已不推荐) import { serve } from "https://deno.land/std@0.208.0/http/server.ts"; // 新方式(JSR) import { serve } from "@std/http";
模块详解
@std/fs 提供 ensureDir、copy、walk 等文件操作,比手动调用 Deno API 更安全——自动处理目录不存在等边界情况。
@std/path 等价于 Node.js 的 path 模块,提供 join、resolve、basename 等,跨平台兼容。
@std/http 用于快速搭建 HTTP 服务,serve() 接收 Request/Response 标准对象,无需第三方框架。
@std/assert 是 Deno 测试的标配断言库,assertEquals、assertThrows 覆盖绝大多数场景。
@std/async 提供 delay、retry、debounce 等异步工具,retry 支持指数退避策略。
@std/encoding 处理 base64、hex、varint 等编解码,是网络和存储场景的基础依赖。
注意事项
部分模块仍标记为 UNSTABLE(0.x 版本),如 @std/log、@std/datetime、@std/io,生产环境慎用。标准库各包独立版本管理,成熟度不同,导入前需确认稳定状态。
追问方向
- Deno 标准库和 Node.js 内置模块相比,设计理念有什么不同?(提示:ESM-only、无全局污染、独立版本)
- @std/http 能否替代 Oak 等框架?什么场景下需要引入第三方框架?(提示:路由、中间件、请求校验)
- 标准库模块的 UNSTABLE 标记意味着什么?如何判断能否用于生产?(提示:语义化版本、JSR 标注)