Ce face diagnostics
Când compilarea devine lentă, primul pas este să afli unde se pierde timpul. --diagnostics afișează numărul de fișiere, rânduri, simboluri și tipuri, memoria folosită și timpul pentru citire, parsare, legare (bind), verificare (check) și emitere.
--extendedDiagnostics dă mai multe detalii: câte rânduri sunt din biblioteci, din declarații, din TypeScript și din JavaScript, mărimea cache-urilor și timpi separați pentru mai multe etape. Dacă „Lines of Definitions” este uriaș, skipLibCheck sau types pot ajuta. Ambele sunt implicit false.
Parametri
| Parametru | Descriere |
|---|---|
--diagnostics |
Statistici de bază. |
--extendedDiagnostics |
Statistici detaliate. |
Exemple
Exemplul 1: Un proiect cu un singur fișier
Aproape toate cele peste 51.000 de rânduri sunt din bibliotecile standard (lib.*.d.ts); proiectul are doar 2 rânduri. Timpii diferă de la un calculator la altul și de la o rulare la alta.
// tsconfig.json
{
"compilerOptions": {
"module": "nodenext",
"target": "es2022",
"noEmit": true,
"types": []
}
}
// index.ts
console.log(1);
Rezultat posibil (timpii și cifrele diferă la fiecare rulare)
$ npx tsc --diagnostics
Files: 64
Lines: 51128
Identifiers: 45618
Symbols: 35597
Types: 15359
Instantiations: 4645
Memory used: 89001K
I/O read: 0.01s
I/O write: 0.00s
Parse time: 0.12s
Bind time: 0.04s
Check time: 0.37s
Emit time: 0.00s
Total time: 0.53s
$ npx tsc --extendedDiagnostics | head -7
Files: 64
Lines of Library: 51126
Lines of Definitions: 0
Lines of TypeScript: 2
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Greșeli frecvente
- Să compari timpii din două rulări consecutive cu
incrementalpornit. A doua rulare poate sări peste verificare și pare mult mai rapidă.
Comenzi înrudite
generateTrace: Scrie fișiere pentru analiza detaliată a performanței: urmă de evenimente și lista tipurilor, sau un profil CPU V8.skipLibCheck: Nu mai verifică erorile din fișierele .d.ts (ale pachetelor și ale proiectului); compilarea devine mai rapidă.incremental: Salvează informații despre ultima compilare într-un fișier .tsbuildinfo, ca următoarea compilare să refacă doar ce s-a schimbat.--listFilesOnly: Afișează fișierele care fac parte din compilare; –listFilesOnly se oprește aici, –listFiles compilează și apoi le afișează.