最近,国外开发者 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 的出现,给了我们两个重要的启示:

  1. AI 正在改变开源的门槛:以前写一个 Node.js 运行时可能需要极其深厚的底层知识和大量时间。现在,通过 "Vibe Coding",开发者可以借助 Claude 这样强大的 AI 助手,快速攻克繁琐的兼容性层,将创意落地的速度提升数倍。

  2. 浏览器端的 AI 基础设施在完善:随着 AI Agent 的爆发,安全地在浏览器端执行 AI 生成的代码成为了刚需。almostnode 提供了一个低成本的沙箱方案,未来我们可能会看到更多基于浏览器的 AI 编程助手。

虽然 almostnode 目前还处于实验阶段(Experimental),可能会有不少 Bug,但它展示的可能性令人兴奋。

如果你也想体验一下 "在浏览器里跑 Node",可以去他们的官网 almostnode.dev 试玩一下,或者去 GitHub 给这位 "Claude 协作者" 点个 Star。

热点推荐

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐