tsc 是一个编译器,把 ts 编译为 js。只编译。ts-node 是一个执行环境,把 ts 编译为 js ,然后在node上运行。即:编译+执行。它们主要的区别是:tsc根据tsconfig来传输所有文件。相反,ts-node是从入口文件开始,并基于导入/导出逐步在树中传输文件。
当我们用 Typesript 来写 Node.js 的代码,写完代码之后要用 tsc 作编译,之后再用 Node.js 来跑,这样比较麻烦,所以我们会用 ts-node 来直接跑 ts 代码,省去了编译阶段。
有没有觉得很神奇,ts-node 怎么做到的直接跑 ts 代码的?
其实原理并不难,今天我们来实现一个 ts-node 吧。