Compilarea TypeScript este foarte lentă atunci când folosesc un fișier tsconfig.json


Când rulez tsc cu un fișier de proiect (tsconfig.json), durează foarte mult (>1 minut) pentru a se finaliza. Când specific aceleași argumente pe linia de comandă sau într-un fișier de argumente, se finalizează în câteva secunde. Acest lucru se întâmplă pe Mac OS cu typescript 2.7.2

Acesta este fișierul tsconfig.json pe care îl folosesc:

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

Când îl cronometrez folosind comanda time, obțin următorul rezultat:

> 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

Durata depășește 2 minute.

Când creez un fișier de argumente care arată astfel:

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

Și comanda de timp:

> 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

Acum durează doar 2 secunde, dar nu mă aștept să văd o diferență semnificativă, pentru că rulez TypeScript cu exact aceleași opțiuni. O fi ceva ce scap din vedere?

Răspuns #1

Dacă aveți o structură de directoare imbricată, ar trebui să fie src/**/* și nu src/*

sau folosește tsc @args --sourceRoot src