构建
Workers Runtime 与 Node.js
从 Web API、兼容日期和 Node 兼容层判断一段代码能否在 Workers 正确运行。
编辑与核验:橙宝书编辑团队 ·
BUILD进阶18 分钟最后核验:2026-08-26
核心判断
Workers 以 Web Platform APIs 为核心,不是“一台更近的 Node 服务器”。先检查 API 是否存在,再检查兼容日期,最后才考虑 polyfill。
兼容性分三类
| 状态 | 含义 | 你的动作 |
|---|---|---|
| 完整支持 | API 在 Workers 中实现 | 写最小运行测试 |
| 部分支持 | 只有部分方法或行为 | 对照具体 API 页与限制 |
| Stub | 可以 import,但调用会抛错 | 不能把构建成功当运行成功 |
对于 compatibility date 为 2026-08-04 或更新的新 Worker,Node.js compatibility 与 v2 默认启用,官方建议不再添加正向 compatibility flag。旧项目不要盲改:先保留原日期、跑回归测试,再有计划地推进日期。
把 Node 代码改成边缘思维
export default {
async fetch(request: Request): Promise<Response> {
const url = new URL(request.url);
const upstream = await fetch(`https://api.example.com${url.pathname}`);
return new Response(upstream.body, upstream);
},
};这里使用 Request、Response、URL 和 fetch,没有文件系统、常驻进程或跨请求共享的可变内存。
AI 代码审查顺序
- 搜索
fs、net、child_process、原生二进制模块与启动服务器代码。 - 在官方 Node compatibility 表中逐项确认,不以“能 import”作为证据。
- 用
wrangler dev实际执行成功和错误分支。 - 更新 compatibility date 时单独提交并记录行为变化。
继续比较运行时与工具链
- 使用 Bun 管理依赖和运行 Wrangler 时,线上代码仍由 workerd 执行;Bun 的 Cloudflare Workers 教程专门解释这条边界。
- Deno 与 Workers 都提供大量 Web APIs,但权限、持久化、部署与 Node 兼容并不相同;先读 Deno、Node 与 Bun 对比,再把依赖带回本页逐项验证。
完整的跨站阅读地图见相关技术文档网络。
官方来源
这篇内容帮你完成目标了吗?
内测反馈只在当前浏览器生成,不会自动上传。