Appearance
https://github.com/esbuild-kit/tsx
TSX的优点:
超快的按需 TypeScript 和 ESM 编译
支持
watch mode🎉;而ts-node是不支持的,只能借助nodemon适用于 CommonJS 和 ESM 包
支持下一代 TypeScript 扩展 (
.cts&.mts)支持
node:前缀的导入当时(import fs from 'node:fs')TypeScript REPL😎(直接在terminal中输入
tsx,然后并可以进入REPL界面了)能够解析tsconfig.json中配置的
paths,即路径映射,比如json// tsconfig.json { "compilerOptions": { "baseUrl": "./", "paths": { "@utils/*": ["src/utils/*"] } } }然后在模块中使用:
tsximport { add } from '@utils/math'tsx能对其进行解析,而ts-node是不支持的。tsx还支持对
i(ES2020特性) 进行shim(注释:ESM -> CJS时进行shim);而mport.meta.url ts-node直接报错
关于它和 ts-node 的运行时对比:
- TS runtime comparison
- 个人感觉全面碾压ts-node
Tricks
使用 tsx 监听文件的更改:
bash
tsx watch ./src/index.ts等价于使用 nodemon:
bash
# -x == --exec 表示执行某个命令
nodemon -x tsx ./src/index.ts
# 如果使用 ts-node
nodemon -x ts-node ./src/index.ts