Vercel 推出 scriptc:TypeScript 编译为原生二进制
Scriptc by Vercel: TypeScript-to-Native compiler, no JavaScript engine in binary
Vercel 开源了 scriptc,一款能将普通 TypeScript 代码直接编译为原生可执行文件的编译器。它无需 Node.js 或 JavaScript 引擎,生成的二进制文件体积极小(约 178KB),启动速度仅需 2ms。scriptc 支持绝大多数 TypeScript 语言特性及 Node.js 标准库,通过差异测试确保行为与 Node.js 完全一致。对于无法静态编译的部分,它提供动态模式嵌入轻量级引擎,同时保持内存安全。这标志着 TypeScript 开发进入零运行时时代,让开发者能享受原生性能而不必牺牲开发体验。
无需修改代码,无需注解,无需方言——你运行在 Node 上的同一份 TypeScript,经过真实 TypeScript 编译器类型检查后,直接编译为原生代码。
HN 评论区
155- JoeDohn
Porforr<https://porffor.dev> 已经朝着同样的目标努力了一段时间。其创作者 CanadaHonk<https://honk.foo> 才华横溢,但该项目目前仅通过了约 68% 的 Test262 测试。除非我误解了该项目的范围,否则我对 Vercel 为何能如此迅速地取得如此大的进展感到相当怀疑。
- acmnrs
TypeScript 除了表达力强之外,另一个优势在于它与庞大的 npm 生态系统兼容。大多数包仅分发未类型化的 JavaScript,并附带定义接口的类型声明,[0] 因此,只要使用任何包,实际上你仍然需要一个 JavaScript 引擎。
但如果你是从零开始,且确定不会使用任何 npm 包,那不如直接使用 AssemblyScript。[2]
[0]: Node[1] 明确不推荐以 TypeScript 形式发布包。TypeScript 即使在次要版本更新中也不向后兼容,且其编译器设置对包来说不具备可移植性。
[1]: https://github.com/nodejs/node/blob/main/doc/api/typescript....
- piterrro
很难忽视 README 里充斥着 Claudisms 这一事实。
- sheept
现在很多人正借助 AI 尝试这类项目,例如原生 TypeScript 编译器 https://github.com/PerryTS/pry。这是一个极具吸引力的价值主张:TypeScript 本身已经具备完善的类型系统,除了少数情况外,它可以直接转换为机器码而无需 JS 运行时。
- weinzierl
看到 Vercel 在 AI 的影响下逐渐失去公信力,真是有趣。
反正我本来就不喜欢他们的产品,所以我认为这对行业来说是个净收益 :)。