1

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

所以我希望 Deno 有一个手表模式。但事实并非如此。那么 Deno 的 TS 编译速度如何?

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

4

1 回答 1

4

Deno 在磁盘上缓存 TypeScript 的转译输出,如果本地源文件没有更改(或缺少--reload远程模块的标志),则将其用于后续模块请求。

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

由于这种单文件方法,它确实意味着您有时会遇到运行时错误,这些错误会被 TypeScript 编译器捕获。如果你想确保你的程序从类型的角度来看是完全一致的,那么 using--recompile将导致每个模块都被重新编译。

可以添加监视功能,但这将是一个功能请求。但是,由于运行时环境的工作方式,处理此类功能存在重大挑战。

于 2019-02-04T02:08:26.523 回答