前言
在写nestjs时它是支持ts的,用起来很舒服,它使用了ts-node运行TypeScript,但是它还是需要配置下才可以使用。
今天介绍个简单好用的在nodejs端运行TypeScript代码库tsx, 它几乎不需要配置,就可以在nodejs里跑ts代码, 需要注意的是它不会将ts文件编译成js,只是支持在nodejs中运行ts, 虽然名字叫tsx,但是和react/vue里面的.tsx没有关系,只不过是遵循.jsx和.tsx文件中JSX的配置
开始使用
安装
$ npm install -D tsx
使用
1、只需要运行个简单的命令就可以在nodejs里跑ts文件
$ npx tsx index.ts
2、也可以配置在scripts中直接使用npm run start
// package.json
{
"scripts": {
"start": "tsx index.ts"
}
}
3、当然也可以使用watch模式来监听文件变化这样就不用每次执行命令了
npx tsx watch index.ts
集成VS Code
tsx支持集成vs code 来进行调试,在项目中创建启动配置文件.vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug with TSX",
"runtimeExecutable": "npx",
"runtimeArgs": [
"tsx",
"index.ts"
],
"skipFiles": [
"<node_internals>/**"
],
"sourceMaps": true,
"resolveSourceMapLocations": [
"${workspaceFolder}/**",
"!**/node_modules/**"
],
"outFiles": [
"${workspaceFolder}/**/*.js"
]
}
]
}
配置好之后直接使用vs code 调试功能就可以了 如下图
关于编译
不可以在线上环境上直接使用tsx运行ts文件,性能和安全性都无法保证,到线上还是需要把ts转成js运行
这时需要tsx作者开发的另一个库pkgroll了 这个库用起来也很容易,直接在package.json中配置下编译后的文件存放位置等就可以了,具体可以看官网