Claude Code 写了个 250KB 的开源库,真把 Node.js 搬进了浏览器

最近,国外开发者 Petr Brzek 发布了一个令人兴奋的开源项目——almostnode。顾名思义,它是一个能在浏览器中运行的 "几乎完整" 的 Node.js 环境。
但比项目本身更有趣的是它的构建方式:作者公开表示,这个库是 "Vibe Coded" 的,并且在他的 GitHub 贡献者列表中,赫然出现了 Claude 的身影。
这不仅仅是一个技术演示,它可能是 AI 辅助编程走向深水区的一个信号:AI 不再只是写几个函数,而是开始参与构建基础设施级别的开源项目了。
简单来说,almostnode 是一个极其轻量级的库,它让你可以在浏览器里运行 Node.js 代码、安装 npm 包,甚至直接运行 Next.js 和 Vite 开发服务器。
最核心的亮点在于它的轻:
-
体积小:压缩后仅约 250KB。
-
启动快:几乎是瞬间启动,没有冷启动时间。
-
无服务端:完全在浏览器端运行(Client-side),不需要后端服务器支持。
这听起来是不是很像 StackBlitz 的 WebContainers?没错,但它们的设计理念完全不同,我们稍后会做详细对比。
在浏览这个项目的 GitHub 仓库时,眼尖的网友发现了一个有趣的细节。
在 macaly/almostnode 的贡献者列表中,除了作者 Petr Brzek,排在第二位的贡献者竟然是 Claude。
结合作者提到的 "Vibe Coded",我们可以合理推测:作者在开发过程中深度使用了 Anthropic 的 Claude Code(或者类似的深度集成工具)。
所谓的 "Vibe Coding",通常指开发者不再纠结于每一行代码的具体实现细节,而是像指挥家一样,通过自然语言告诉 AI "我想要什么感觉"、"实现什么功能",由 AI 快速生成大量的样板代码和逻辑实现,开发者主要负责架构设计、Code Review 和 "感觉" 的把控。
在这个项目中,Claude 很可能承担了大量 Shim(垫片)模块的编写工作。要让 Node.js 在浏览器运行,需要模拟 fs (文件系统)、path (路径)、http (网络) 等几十个原生模块。这类工作量大、逻辑相对固定但繁琐的任务,正是 AI 擅长的领域。
抛开 AI 的光环,almostnode 在技术上也是可圈可点的。它通过以下几个核心组件在浏览器中 "骗" 过了 Node.js 应用:
1. 虚拟文件系统 (Virtual Filesystem)
它并没有真的去访问你的硬盘,而是在浏览器内存中构建了一个符合 POSIX 标准的虚拟文件系统。这一部分复用了 @cramforce 的 just-bash。这意味着你可以像在 Linux 终端里一样进行文件读写操作。
2. Node.js 模块垫片 (Shims)
这是最关键的部分。浏览器没有 fs 或 crypto 模块,almostnode 提供了 40 多个模拟模块。当你调用 require('fs') 时,实际上调用的是它写好的浏览器兼容版本。它甚至支持在浏览器里运行 npm install,直接解析并下载 npm 包到虚拟文件系统中。
3. 服务端桥接 (Server Bridge)
如果你在浏览器里运行 http.createServer,流量去哪了?almostnode 利用 Service Worker 拦截了浏览器的网络请求,并把它们转发给你在浏览器里运行的虚拟服务器。这就实现了 "在浏览器里访问 localhost:3000",但实际上请求根本没出浏览器。
看到这里,很多前端同学会想到 StackBlitz 的 WebContainers。两者虽然目标相似,但技术路线完全不同:
|
特性 |
WebContainers (StackBlitz) |
almostnode |
|---|---|---|
| 核心原理 |
基于 WebAssembly 运行真正的微型 Linux 内核 |
基于 JS 模拟 Node.js API (Shims) |
| 兼容性 |
极高(原生 Node.js 行为) |
中等(部分边缘 API 可能不支持) |
| 体积 |
较重 (~2MB+) |
极轻 (~250KB) |
| 启动速度 |
需几秒钟引导系统 |
瞬间启动 |
| 适用场景 |
完整的在线 IDE、生产级开发环境 |
文档演示、轻量级 Playground、AI 代码执行沙箱 |
正如作者所说,almostnode 并不是要替代 WebContainers。
-
如果你需要一个全功能的云端开发环境,WebContainers 依然是王者。
-
但如果你只是想在博客里演示一段 Node.js 代码,或者给你的 AI Agent 提供一个轻量级的代码执行环境,那么 WebContainers 就显得太重了,而
almostnode则恰到好处。
almostnode 的出现,给了我们两个重要的启示:
-
AI 正在改变开源的门槛:以前写一个 Node.js 运行时可能需要极其深厚的底层知识和大量时间。现在,通过 "Vibe Coding",开发者可以借助 Claude 这样强大的 AI 助手,快速攻克繁琐的兼容性层,将创意落地的速度提升数倍。
-
浏览器端的 AI 基础设施在完善:随着 AI Agent 的爆发,安全地在浏览器端执行 AI 生成的代码成为了刚需。
almostnode提供了一个低成本的沙箱方案,未来我们可能会看到更多基于浏览器的 AI 编程助手。
虽然 almostnode 目前还处于实验阶段(Experimental),可能会有不少 Bug,但它展示的可能性令人兴奋。
如果你也想体验一下 "在浏览器里跑 Node",可以去他们的官网 almostnode.dev 试玩一下,或者去 GitHub 给这位 "Claude 协作者" 点个 Star。
热点推荐
更多推荐




所有评论(0)