Node.jsVFSAI CodeOpen Source

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

Daniel Curtis 译者 | 明知山··原文链接
收录于 2026/5/28 09:27:12

核心提案

Matteo Collina(Node.js 技术指导委员会成员、Platformatic 联合创始人)提议在 Node.js 核心中新增 node:vfs 模块,正式引入原生级虚拟文件系统(VFS)。

提案规模

  • PR #61478
  • 新增约 19000 行代码
  • 涉及 100 个文件
  • 在社区引发广泛讨论

四大应用场景

Node.js 的核心始终围绕 I/O,流、缓冲区、套接字和文件共同构成了运行时骨干。然而,以下常见工作流程以往都只能依靠变通方案实现:

  1. 运行 AI 生成代码:将代码保留在内存中并直接导入
  2. 无磁盘测试:大幅提升测试速度
  3. 打包单文件可执行应用:简化部署流程
  4. 多租户平台沙箱隔离:对文件访问进行安全隔离

node:vfs 模块通过提供基于内存且兼容 fs 的 API,以及支持挂载点、覆盖模式、符号链接和模块加载钩子,一次性解决这四个问题。

性能优势

在 Hacker News 上,一位评论者指出:

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

开发者支持

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

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

AI 生成代码引发争议

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 仓库中表现出色的维护者们。"

生态跟进

Platformatic:已在 npm 上发布用户态包 @platformatic/vfs,适用于 Node.js 22 及以上版本。待 node:vfs 正式推出时,只需修改一行导入语句即可完成迁移:将 '@platformatic/vfs' 替换为 'node:vfs'

Vercel:已将这套 API 封装到自己的包中。

LangChain:已通过该包将 VFS 用于智能体沙箱化。

竞争态势

  • 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/