📀 又发现一个编译神器 scriptc,能把 TypeScript 写的程序直接编译成一个不用装 Node 的原生可执行文件
仓库今年 7 月底才建,两个月 GitHub 上就冲到 5500+ star,出自 Vercel Labs 的实验项目
平时写个小工具用 TS 最舒服,但交付的时候最烦:对方机器得先装 Node,版本还得对得上,一个两百行的脚本最后附一整套环境说明。scriptc 的做法是拿 TypeScript 自己的编译器做解析和类型检查,然后一路往下走到 LLVM,产出的静态二进制里只带一个很小的原生运行时,Node 和 JS 引擎都不在里面。
最贴心的是它有个 coverage 命令,先告诉你这份代码有多大比例能静态编译,剩下那些动态的地方逐个指出在哪一行,而不是编译到一半糊你一脸报错。实在绕不开 any 和 npm 包的部分,可以显式把 quickjs-ng 引擎嵌进去兜底。
macOS、Linux、Windows 都是它的目标平台,还能产出 WebAssembly 模块。它自己写明还在实验阶段,网络、子进程这类能力在 WASI 上会直接报错拦住,别拿它编生产服务。
TypeScript 写的东西,从此也能交付成一个能直接跑的文件。
GitHub:
顯示更多