TSX 入门:TypeScript 执行与监听指南
TSX 基于 esbuild 实现 TS 秒级执行:watch 模式、REPL、tsconfig paths 自动支持。本文讲解安装、核心用法与生产工作流搭配。
npm i -D tsx 后 tsx app.ts 直接运行 TypeScript——esbuild 内核启动毫秒级,tsx watch 保存即重启,自动读取 tsconfig 路径别名。它是当前 Node 生态 TS 开发体验的标准答案。
快速上手
npm install --save-dev tsx
npx tsx src/index.ts # 运行
npx tsx watch src/index.ts # 开发热重载
npx tsx # REPL
与 tsconfig.json 的协作
TSX 自动读取 tsconfig:paths 别名开箱可用,target 影响转译级别。唯一注意:TSX 不做类型检查——类型安全靠编辑器 + CI 的 tsc --noEmit。
package.json 集成
{
"scripts": {
"dev": "tsx watch src/index.ts",
"script:cleanup": "tsx scripts/cleanup.ts",
"typecheck": "tsc --noEmit",
"build": "tsc",
"start": "node dist/index.js"
}
}
开发 TSX、生产编译产物——边界清晰。
调试
tsx --inspect-brk src/index.ts # Chrome DevTools 断点
VS Code:launch.json 的 runtimeArgs 加 --import、tsx,断点直打 TS 源码。
高级用法
- REPL:
tsx进入交互环境,验证想法的最快路径; - 管道脚本:tsx 写一次性脚本替代 bash——类型安全的运维脚本;
- 环境变量:配合 Node 20+ 的
--env-file(tsx 透传 Node 参数)。
常见问题(FAQ)
Q:TSX 能用于生产吗?
技术可行但不推荐——生产用 tsc/SWC 预编译产物(启动快、无转译层、镜像更小)。TSX 的主场是开发期。
Q:装饰器/NestJS 项目兼容吗?
esbuild 对装饰器元数据(emitDecoratorMetadata)支持有限——NestJS/TypeORM 项目用 tsx 需验证,必要时退回 SWC/tsc 方案。
Q:和 nodemon 方案比?
tsx watch 一条命令替代 nodemon + ts-node 组合——更快且配置为零。
参考文档
本文依据公开文档整理,示例需按项目依赖版本验证;不将文档中的性能描述视为本项目实测结果。