当我使用tsconfig.json文件时,Typescript编译速度非常慢

时间:2018-03-12 13:30:54

标签: typescript

当我使用项目文件(tsconfig.json)运行tsc时,需要很长时间(> 1分钟)才能完成。当我在命令行或参数文件中指定相同的参数时,它会在几秒钟内完成。这种情况发生在Mac OS上,打字稿为2.7.2

这是我使用的tsconfig.json:

{
  "compilerOptions": {
    "target": "es2017",
    "module": "commonjs",
    "outDir": "dist", 
    "rootDir": "src",  
    "sourceMap": true
  }
}

当我使用time命令计时时,我得到以下结果:

> time tsc --diagnostics -p tsconfig.json

Files:           38
Lines:        34429
Nodes:       157429
Identifiers:  52565
Symbols:      50844
Types:        12929
Memory used: 86147K
I/O read:     0.02s
I/O write:    0.01s
Parse time:   0.64s
Bind time:    0.44s
Check time:   1.91s
Emit time:    0.19s
Total time:   3.19s

real    2m20.611s
user    0m34.914s
sys     1m11.042s

需要2分钟以上。

当我创建一个如下所示的参数文件时:

--target es2017 --module commonjs --outDir dist --sourcemap

时间命令:

> time tsc --diagnostics @args src/*

Files:           38
Lines:        34429
Nodes:       157429
Identifiers:  52565
Symbols:      50844
Types:        12929
Memory used: 83773K
I/O read:     0.00s
I/O write:    0.00s
Parse time:   0.52s
Bind time:    0.24s
Check time:   1.10s
Emit time:    0.09s
Total time:   1.96s

real    0m2.259s
user    0m3.568s
sys     0m0.133s

现在它只需要2秒钟,但我不希望看到显着的差异,因为我使用完全相同的选项运行打字稿。我忽略了什么吗?

1 个答案:

答案 0 :(得分:0)

如果你有一个nexted目录结构,它应该是src/**/*而不是src/*

或使用tsc @args --sourceRoot src