TSX 替代方案盘点:6 大 TypeScript 执行方案
TSX 之外的 TS 执行选择:Node 原生支持、Bun、Deno、vite-node、Jiti、ts-node。本文按场景对比六大方案。
TSX 的综合体验仍是 Node 生态首选;特定场景看替代:简单脚本用 Node 原生类型剥离(零依赖)、全工具链用 Bun、Vitest 项目用 vite-node、嵌入式加载用 Jiti。
TSX 的边界
esbuild 内核、双模块格式、watch 模式——TSX 很强,但:无内置类型检查(需 tsc 配合)、安装体积不小、与 Node 原生能力有重叠。
1. Node.js 原生 TS 支持
node app.ts——Node 23.6 起稳定的类型剥离。零依赖是杀手锏;限制:无路径别名、无类型依赖特性。简单脚本的最佳答案。
2. Bun
bun app.ts——TS 执行是运行时本能,附赠极快安装与测试。接受 Bun 生态后的最顺体验。
3. Deno
完整 TS 支持(含类型检查)+ 权限沙箱。跨运行时选项。
4. vite-node
Vitest 的执行引擎——项目已用 Vitest 时,vite-node 让脚本执行与测试共享同一转换管道(别名、插件行为一致)。
5. Jiti
可编程的嵌入式加载器——CLI 工具加载用户 TS 配置的场景专用,磁盘缓存加持。
6. ts-node
上一代标准。存量项目维护用,新项目不选。
速查
| 场景 | 选择 |
|---|---|
| 日常开发 | TSX(默认) |
| 极简脚本 | Node 原生 |
| 全栈新runtime | Bun / Deno |
| 测试同管道 | vite-node |
常见问题(FAQ)
Q:为什么 TSX 仍是默认推荐?
watch 模式、REPL、tsconfig paths 自动支持、双模块通吃——单项都有替代,综合体验没有。
Q:Node 原生方案何时能完全替代 TSX?
当 watch 体验、路径别名、装饰器等能力补齐后。趋势明确,时间表未定——持续关注 Node release notes。
Q:这些方案能混用吗?
能且常见:CI 用 Node 原生(零依赖)、本地用 TSX(体验)、工具内嵌 Jiti。
参考文档
本文依据公开文档整理,示例需按项目依赖版本验证;不将文档中的性能描述视为本项目实测结果。