本地TS环境支持

55 阅读1分钟

1、问题

ts补充了js弱类型的问题,在开发过程中使用类型提示能规避很多低级的错误,且能较大提高开发效率;但是node环境自身不支持ts,需要先将ts文件编译成js文件才能运行,效率比较低。

2、解决

那本地开发如何支持ts实时编译?以本地的test.ts文件举例,可以使用下面2种方式:

(1)nodemon+tsc

  • 全局安装nodemontypescript
npm i nodemon typescript -g
  • 使用typescript实时编译文件,生成test.js文件
tsc test.ts -w
  • 使用nodemon实时监听文件变化
nodemon test.js

需要两个终端配合实现实时运行ts,且会生成中间js文件。

(2)ts-node-dev(推荐)

ts-node-devnode-dev基础上进行了优化,专门针对TypeScript环境设计,利用ts-node进行编译,并在进程重启之间共享编译状态,从而显著提高了热重载的速度。

  • 全局安装ts-node-dev
npm i ts-node-dev -g
  • 配置实时运行参数
// --respawn:保持文件变化监听
// --transpile-only:跳过类型检查,提高编译速度
ts-node-dev --respawn --transpile-only test.ts 
// 可使用缩写 tsnd
tsnd--respawn --transpile-only test.ts 

3、其他 可以在项目根目录使用tsconfig.json文件对ts进行配置,如下所示:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false 
  }
}