Repolode
vercel-labs

vercel-labs/scriptc

一个实验性的编译器,可将 TypeScript/JavaScript 编译为原生可执行文件或 WebAssembly,运行时无需 Node.js。

Star
6,238
Fork
191
未关闭 Issue
56
最近提交
1小时前

这是什么?

scriptc 可将 TypeScript 和 JavaScript 编译为原生可执行文件或 WebAssembly。它利用 TypeScript 编译器检查后的类型信息生成机器码,产物无需安装 Node.js 即可运行。程序导入的 npm 包也会随之编译进可执行文件。

项目目前处于实验阶段,仅支持 JavaScript、TypeScript 和 Node.js API 的一个子集。无法编译的代码会在构建时给出诊断信息,并在可能时提供改写建议。运行 `scriptc coverage` 可以在构建前查看已有程序有多少部分能够编译。

编译器可通过 npm 安装,支持 macOS、Linux 和 Windows。构建可执行文件需要链接器以及平台 SDK 或 sysroot。`node:http` 等受支持的 Node API 会编译到原生运行时中。

核心功能

  • 01将 TypeScript 和 JavaScript 编译为原生可执行文件。
  • 02支持编译为 WebAssembly(WASI 模块)。
  • 03利用 TypeScript 类型信息生成机器码。
  • 04将导入的 npm 包打包进输出的二进制文件。
  • 05构建时对不支持的代码给出诊断信息。
  • 06提供 coverage 命令,便于在构建前检查兼容性。

适用场景

  • 将命令行工具打包为单个二进制文件,无需安装 Node.js 即可运行。
  • 评估现有 TypeScript 程序有多少部分可以编译为原生代码。
  • 将 TypeScript 构建为 WASI 模块,用于嵌入其他系统。
  • 将基于 Node 风格 API 的小型 HTTP 服务打包为独立可执行文件。

标签

常见问题

scriptc 是什么?
一个实验性的编译器,可将 TypeScript/JavaScript 编译为原生可执行文件或 WebAssembly,运行时无需 Node.js。 scriptc 可将 TypeScript 和 JavaScript 编译为原生可执行文件或 WebAssembly。它利用 TypeScript 编译器检查后的类型信息生成机器码,产物无需安装 Node.js 即可运行。程序导入的 npm 包也会随之编译进可执行文件。
scriptc 可以免费使用吗?用的什么许可证?
scriptc 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
scriptc 还在维护吗?
活跃维护中。scriptc 最近一次提交是在 2026年10月19日。
scriptc 适合用来做什么?
将命令行工具打包为单个二进制文件,无需安装 Node.js 即可运行。 评估现有 TypeScript 程序有多少部分可以编译为原生代码。 将 TypeScript 构建为 WASI 模块,用于嵌入其他系统。 将基于 Node 风格 API 的小型 HTTP 服务打包为独立可执行文件。
在哪里获取 scriptc?
源代码和安装说明在 GitHub 上:https://github.com/vercel-labs/scriptc

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目