如何在不以“监视”模式运行TypeScript编译器的情况下快速启动Deno?

时间:2019-02-03 18:30:47

标签: typescript typescript-compiler-api deno

据我所知,Deno总是在启动时将TypeScript编译为JS,并且没有“监视”模式。 据我了解,除了TS监视模式外,没有针对TypeScript的“增量编译”之类的东西。因此,如果要快速进行TS编译,则必须使用监视模式。

因此,我希望Deno具有监视模式。但事实并非如此。那么Deno的TS编译速度如何?

注意:我知道Deno使用tsc的V8快照,以便tsc快速启动,但是对于较大的TS项目,tsc的启动时间将与实际的编译时间相形见.。所以我不是在问V8快照,而是在问Deno使用了哪些其他技巧。它是否使用构建守护进程?

1 个答案:

答案 0 :(得分:4)

如果本地源文件未更改(或远程模块缺少--reload标志),Deno将从TypeScript的磁盘转储输出缓存并在后续的模块请求中使用。

从Deno 0.2.8开始,当需要编译TypeScript模块时,将延迟实例化TypeScript。 Deno逐个模块而不是整个项目进行编译,并缓存每个单独模块的结果。因此,当仅更改单个文件时,只会编译该模块。

由于使用单个文件方法,因此确实意味着您有时会遇到TypeScript编译器已捕获的运行时错误。如果要从类型角度确保程序完全一致,请使用--recompile将重新编译每个模块。

可以添加添加手表功能,但这将是一项功能请求。但是,由于运行时环境的工作方式,处理此类功能仍然面临着巨大的挑战。