如何改进或调试Typescript ts-node编译时间?

sqserrrh  于 2022-12-05  发布在  TypeScript
关注(0)|答案(2)|浏览(257)

我把我的代码库换成了 typescript 。它在数百个文件中大约有10万行代码。
以前我用ESLint --fix --cache的启动时间是2秒,现在用Typescript(ts-node)的启动时间是25秒(20秒只适用于typescript)。
项目仅为后端。
25秒是一种无法接受的速度。这是正常的吗?我试图删除我能找到的每个动态要求,但仍然没有帮助。会不会是某个大文件占用了太长的时间?我怎么知道什么占用了这么长的时间?

njthzxwz

njthzxwz1#

你不需要用ts-node运行生产版本,它只是在运行中传输你的代码。你可以简单地检查它,运行ts-node并粘贴一些代码,然后尝试查看运行时代码的源代码。编译级别和其他配置也在你的tsconfig文件中起作用。

> const a = (a: string) => a + 'hello';
undefined
> a.toString()
"function (a) { return a + 'hello'; }"

因此,当您运行项目时,它:

  • 类型检查器检查您的每个文件
  • 传输您的每个文件
  • 解释此类文件
  • 然后只运行您的代码

因为这是一个解释过程,所以你的时间会一直持续到(require -〉typecheck -〉transpile -〉run -〉repeat),直到你的所有代码都被执行。

ifsvaxew

ifsvaxew2#

两种解决方案仅适用于开发环境

  • 使用tsc --watch,它将根据文件更改进行重建,并且速度非常快,因为它只重建更改的文件

  • 使用ts-node-dev。它是ts-node和nodemon或pm2的混合。因此,它会在文件更改时重新编译并重新启动服务器。

相关问题