写点什么

Node.js 拟内置虚拟文件系统,AI 生成代码引争议

作者:Daniel Curtis
  • 2026-05-26
    北京
  • 本文字数:1249 字

    阅读完需:约 4 分钟

Matteo Collina 是 Node.js 技术指导委员会成员,同时也是 Platformatic 联合创始人。他提议在 Node.js 核心中新增 node:vfs 模块,正式引入原生级虚拟文件系统(VFS)。该提案以 PR #61478 的形式提交至 Node.js GitHub 仓库,新增约 19000 行代码,涉及 100 个文件,并在社区引发了广泛讨论——大家既关注这项新功能本身,也热议该功能主要是使用 Claude Code 开发的这一事实。

Node.js 的核心始终围绕 I/O,流、缓冲区、套接字和文件共同构成了运行时骨干。然而,运行 AI 生成代码、无磁盘测试、打包单文件可执行应用以及在多租户平台中对文件访问进行沙箱隔离这类常见工作流程以往都只能依靠变通方案实现。此次提议的 node:vfs 模块通过提供基于内存且兼容 fs 的 API,以及支持挂载点、覆盖模式、符号链接和模块加载钩子,一次性解决这四个问题。

与该核心提案同步推进的还有,Platformatic 已在 npm 上发布了用户态包 ,适用于 Node.js 22 及以上版本。该包完整复刻了提案新增的核心 API,待 node:vfs 正式推出时,只需修改一行导入语句即可完成迁移:将 '@platformatic/vfs' 替换为 'node:vfs'。Vercel 已将这套 API 封装到自己的 包中,而 LangChain 也已通过 将 VFS 用于智能体沙箱化。

该功能已获得了看到其明显优势的开发者的支持。在 Hacker News 上,一位评论者指出:

Yarn、pnpm、webpack 都有各自对应的解决方案。很高兴这项能力即将成为标准。我有个项目曾受文件系统限制严重:原本执行 13000 个测试需要 40 分钟,若 Node 原生支持虚拟文件系统,耗时可缩短至 3 分钟。

Hashnode 上,开发者 Jake Morrison 强调了 AI 智能体的使用场景:

我一直将生成的代码写入临时文件,然后再清理,这种方式总觉得不够妥当。将代码保留在内存中并直接导入,会合理得多。

但这个 PR 也引发了一场更大范围的争论。Collina 坦言,该实现是在 2025 年圣诞节期间借助 AI 辅助完成的,他表示“ AI 处理了繁琐的部分”,自己则专注于架构、API 设计和代码审核。对此,Node.js 核心资深贡献者、io.js 分支发起人 Fedor Indutny 在 GitHub 上发起了一份请愿书,呼吁禁止在 Node.js 核心中加入 AI 生成的代码。请愿内容指出,该 PR 的代码体量大,让人对开发者原产地证书(DCO)以及审核人员能否充分核验机器生成代码产生顾虑。Indutny 在 Reddit 上写道:

我始终认为,Node.js 这类核心基础设施并不适合做出这类改动。

也有人提出反驳,Hacker News 上的一些评论者表示:“如果要选择信任谁去探索这些方向,我会相信他,还有这几年在 Node.js 仓库中表现出色的维护者们。”

目前 Bun 和 Deno 均未提供同类的内置 VFS。Deno 已创建 issue #32783 用于跟踪添加 node:vfs 兼容性的工作。在原始文件系统吞吐量方面领先基准测试的 Bun 尚未宣布类似的计划。Node.js TSC 计划就 AI 辅助代码贡献的管理规则开展投票,这将决定该 PR 的命运。用户态包及迁移路径的文档可在 Platformatic 博客@platformatic/vfs GitHub 仓库 查看。

查看英文原文:https://www.infoq.com/news/2026/05/node-js-file-system/