Vercel Labs发布的scriptc实验性编译器实现TypeScript向原生可执行文件转换,依托Apache 2.0协议,支持生成二进制、WASI WebAssembly等形态。代码创建于2026年7月,累计获4900+Star,采用完整TypeScript解析与类型检查流程,语法分层明确。基准测试显示其启动耗时较Bun、Node等工具提升12倍,内存占用降低72倍,可生成仅370KB无运行时依赖的单一文件;但在运行层面,即便采用动态执行路径,速度仍较Node慢7.5倍,Filip Pizlo、Simon Willison等观点反映出性能与生态依赖的双重考量。测试还发现脚本兼容性覆盖检查普遍存在数百错误,维护层面存在Vercel zerolang、Remo Jansen编译TypeScript 6编译器失败等风险,整体表明该编译器在性能与维护层面存在待完善空间,其实验性定位需持续关注。

--91likeyou---

一项将 scriptc 0.0.16 与 Bun 1.3.12、Node 24.18.0 进行对比的基准测试显示,scriptc 命令行工具的启动时间中位数为 1.78 毫秒,而 Bun 和 Node 分别为 21.29 毫秒和 61.78 毫秒。一个不使用任何框架的 node:http 服务器在空闲时仅占用 1.9MiB 内存。同一组测试发现,Hono 必须启用 --dynamic,导致服务器中 62% 的代码进入 QuickJS,吞吐量也降至每秒 1.84 万个请求,而 Bun 可以达到每秒 7.05 万个请求。

在 Hacker News 上,一名开发者报告称,其测试结果显示 scriptc 的运行速度约比 Node 24 慢 7.5 倍:

从字节数组的结果来看,也就是最理想的情况,scriptc 仍然比 Node 24 慢约 7.5 倍,即使 Claude 已经尝试进行一些针对 scriptc 的优化。不过,它的可执行文件启动速度快了 12 倍(1.5 毫秒对 18.6 毫秒),内存占用低了 72 倍(2.5MiB 对 181MiB),而且最终得到的是一个没有任何运行时依赖、大小仅为 370KB 的单一可执行文件。

Filip Pizlo 认为,将所有数字都表示为浮点数,并暂缓实现整数类型推断,相当于跳过了“让 JavaScript 跑得快这一问题的一半”。他还指出,对于一个以性能为目标的项目来说,依赖 QuickJS 并不合适,因为 any 足够常见,实际程序中的代码会不断落入这个动态执行孤岛。

Simon Willison 指出,编码智能体在短短一周内就提交了 91.8 万行代码。他还补充道,无需编写 C 或 Rust 就能构建小巧、快速的二进制文件,“似乎是一项很有价值的能力”。

一名开发者发现,在其本地的每个项目上进行兼容性覆盖检查时,都会产生数百个错误:

尽管它受到了很多批评,我还是觉得至少应该测试一下,于是用本地所有项目都试了一遍。每一个项目的覆盖检查都会产生数百个错误,所以它基本毫无用处。我明白,我可以从头编写一个项目,不使用任何第三方库,然后把它编译成二进制文件;但既然如此,我为什么不用 Rust、Go、Zig、D、C、V、Ada、C++、Nim、Swift、Kotlin Native、Haskell……或者任何一种本来就是为编译而设计,并且能很好完成编译的语言?

另一个反复出现的担忧是项目能否长期维护。评论者提到了 Vercel 的 zerolang,该项目发布数周后便不再有新的代码提交。Remo Jansen 曾尝试编译 TypeScript 6 编译器本身,但最终因编译器内部错误而失败。不过,他测得 scriptc 的冷启动时间为 3.6 毫秒,而 Node 为 48.9 毫秒;但在计算任务中,scriptc 的耗时则慢得多,达到 2.33 秒。

该编译器需要 Node.js 24 或更高版本,可以通过 npm install -g scriptc 安装。限制说明页面记录了一些有意为之的行为差异,使用前值得仔细阅读:字符串以 UTF-8 格式存储;内存使用引用计数而非垃圾回收;Object.keys 按声明顺序返回键;process.argv[0] 的值为 "scriptc"。npm 依赖指南介绍了依赖项的处理方式,其中包括实验性的 --npm-static 参数,可以将指定软件包从动态执行孤岛中移出并进行静态编译。

scriptc 支持 macOS、Linux、Windows 和 WASI Preview 1,并通过差分测试保证行为一致:测试会逐字节比较其与 Node 的标准输出、标准错误和退出码。该项目目前仍被明确标记为实验性项目,相关文档可在 scriptc.dev 查看。

:

🔥 热词:#TypeScript要编译为Javascript · #typescript在线运行 · #typescript快应用