目录
- 简介
- 首次用户
- 功能特点
- 竞品和相关作品
- 进一步探索
简介
tsx 代表 “TypeScript execute”,由 TypeScript 编写,内部使用由 Go 语言编写的 esbuild 核心二进制实现超快的 TypeScript 编译,旨在增强 Node.js 以无缝运行 TypeScript / ESM / CJS module 编写的脚本文件,成为 node
命令的直接替代品。
首次用户
-
使用
x env use tsx
即可自动下载并使用- 在终端运行
eval "$(curl https://get.x-cmd.com)"
即可完成 x 命令安装, 详情参考 x-cmd 官网
- 在终端运行
-
x-cmd 提供1分钟教程,其中包含了 tsx 命令常用功能的 demo 示例,可以帮你快速上手 tsx 。
-
使用案例:
# 安装 tsx x env use tsx # tsx 兼容 node 命令,支持 TS 和 JSX 开箱即用 tsx hello.js tsx hello.tx
功能特点
- 开箱即用:无需额外操作或是额外配置如
tsconfig
等配置文件,即可直接运行 TypeScript 脚本文件。此外 tsx 可以通过检测模块的加载方式来确定如何编译脚本文件,以支持 ESM 或是 CJS 规范的脚本文件。 - 运行快速:tsx 的核心由 esbuild 提供支持,实现对 TypeScript 超快编译,同时 esbuild 不会进行类型检查,所以使用 tsx 运行 ts 脚本文件都有明显的运行优势。
- 兼容
node
命令:tsx 是 Node.js 的封装调用,所以是支持所有 Node.js 命令行参数以及选项,此外还提供 Watch 模式,帮助用户更便捷调试开发脚本。
竞品和相关作品
- [ts-node]:ts-node 也同样是在 Node.js 上运行 TypeScript 的命令行的工具,运行时会对文件进行类型检查,对于需要严格模式下运行的脚本文件,ts-node 是更好的选择。
- [bun]:bun 由 Jarred Sumner 在 2021年使用 Zig 开发。但不同于 node 和 deno 基于 Chrome 项目的 V8引擎,bun 使用 JavaScriptCore 引擎。同时 bun 提供开箱即用运行 TypeScript 脚本文件,x-cmd 也引入了 bun,有兴趣的读者可以参考 x-cmd pkg bun。
- deno 是一个由 Node 原作者采用 Rust 开发,同样也是开箱即可运行 Typescript,以推广更严谨更安全的代码。x-cmd 也引入了 deno,有兴趣的读者可以参考 x-cmd pkg deno。
进一步探索
- tsx - GitHub