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