gpt4 book ai didi

performance - 通过 tsc 转译 typescript 时是否可以禁用类型检查以加快转译速度?

转载 作者:搜寻专家 更新时间:2023-10-30 20:53:11 26 4
gpt4 key购买 nike

TypeScript 在转译过程中检查整个代码库,即使实际上只有一个文件发生了变化。对于小型项目,这很好,但随着我们的代码库增长,这需要相当长的时间。

在开发过程中,我希望我的单元测试能够快速响应。单元测试应尽快运行。

不幸的是,每次运行我都必须等待大约 10-15 秒才能开始单元测试,因为 tsc 需要很长时间才能转译,其中 60%-80 % 用于检查。

这些示例运行只是在一个文件中删除和添加一个换行符:

yarn tsc v0.27.5
$ "/home/philipp/fancyProject/node_modules/.bin/tsc" "--watch" "--diagnostics"
Files: 511
Lines: 260611
Nodes: 898141
Identifiers: 323004
Symbols: 863060
Types: 302553
Memory used: 704680K
I/O read: 0.17s
I/O write: 0.09s
Parse time: 2.61s
Bind time: 0.95s
Check time: 7.65s
Emit time: 1.45s
Total time: 12.65s
00:35:34 - Compilation complete. Watching for file changes.


00:41:58 - File change detected. Starting incremental compilation...


Files: 511
Lines: 260612
Nodes: 898141
Identifiers: 323004
Symbols: 863060
Types: 302553
Memory used: 1085950K
I/O read: 0.00s
I/O write: 0.04s
Parse time: 0.68s
Bind time: 0.00s
Check time: 12.65s
Emit time: 1.36s
Total time: 14.69s
00:42:13 - Compilation complete. Watching for file changes.


00:42:17 - File change detected. Starting incremental compilation...


Files: 511
Lines: 260611
Nodes: 898141
Identifiers: 323004
Symbols: 863060
Types: 302553
Memory used: 1106446K
I/O read: 0.00s
I/O write: 0.12s
Parse time: 0.32s
Bind time: 0.01s
Check time: 9.28s
Emit time: 0.89s
Total time: 10.50s
00:42:27 - Compilation complete. Watching for file changes.

我想知道是否有办法告诉 typescript :

只要一切正常,尽快将 JavaScript 转储到磁盘即可。

我想首先确保我的单元测试通过,以便有一个快速的反馈循环。

而且由于我的 IDE 已经在我当前正在处理的文件中进行了类型检查,所以我在转译检查中很少出错。如果出现大问题,我的单元测试应该会发现它们。

在构建项目时,我只会使用经典的 tsc 进行检查。正如我所说,这仅用于开发和快速反馈循环。

最佳答案

  1. 开始使用 WebPack
  2. 添加awesome-typescript-loader
  3. 将setting中的transpileOnly设为true

您还可以更改其他参数,这可以提高速度:ignoreDiagnosticsforceIsolatedModules 等。

关于performance - 通过 tsc 转译 typescript 时是否可以禁用类型检查以加快转译速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949418/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com