microsoft / microsoft/TypeScript

extendedDiagnostics is difficult to use if you have composite projects

Offen
#45,348 2 Kommentare 8 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Experience Enhancement Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.4k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

Suggestion

extendedDiagnostic outputs per-project statistics, but it's difficult to map those statistics back to the sub-projects. It would be great to start each section with tsconfig path that the statistics relate to.

🔍 Search Terms

performance, diagnostics, extendedDiagnostics

List of keywords you searched for before creating this issue. Write them down here so that others can find this suggestion more easily and help provide feedback.

✅ Viability Checklist

My suggestion meets these guidelines:

  • [ x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
  • [ x] This wouldn't change the runtime behavior of existing JavaScript code
  • [ x] This could be implemented without emitting different JS based on the types of the expressions
  • [x ] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
  • [x ] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

Add tsconfig.json path for each diagnostic section.

📃 Motivating Example

Files: 174
Lines of Library: 29237
Lines of Definitions: 104603
Lines of TypeScript: 4808
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Nodes of Library: 122618
Nodes of Definitions: 220860
Nodes of TypeScript: 14004
Nodes of JavaScript: 0
Nodes of JSON: 0
Nodes of Other: 0
Identifiers: 120621
Symbols: 168609
Types: 49549
Instantiations: 136607
Memory used: 218473K
Assignability cache size: 44366
Identity cache size: 87
Subtype cache size: 248
Strict subtype cache size: 64
I/O Read time: 0.10s
Parse time: 0.95s
ResolveModule time: 0.11s
ResolveTypeReference time: 0.02s
Program time: 1.22s
Bind time: 0.45s
Check time: 3.62s
transformTime time: 0.07s
Source Map time: 0.01s
commentTime time: 0.01s
printTime time: 0.17s
Emit time: 0.17s
I/O Write time: 0.01s
Total time: 5.47s
Files: 2368
Lines of Library: 28467
Lines of Definitions: 781748
Lines of TypeScript: 226192
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Nodes of Library: 121539
Nodes of Definitions: 2173927
Nodes of TypeScript: 764889
Nodes of JavaScript: 0
Nodes of JSON: 0
Nodes of Other: 0
Identifiers: 1089505
Symbols: 1032449
Types: 366438
Instantiations: 1212704
Memory used: 1462003K
Assignability cache size: 235521
Identity cache size: 2060
Subtype cache size: 30709
Strict subtype cache size: 29974
I/O Read time: 0.99s
Parse time: 5.26s
ResolveModule time: 1.09s
ResolveTypeReference time: 0.01s
Program time: 7.84s
Bind time: 2.12s
Check time: 26.17s
transformTime time: 7.29s
Source Map time: 0.18s
commentTime time: 0.32s
printTime time: 9.60s
Emit time: 9.62s
I/O Write time: 1.10s
Total time: 45.74s

💻 Use Cases

I want to use this for understanding high level performance of our different projects without having to open traces.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem extendedDiagnostics-Einstiegspunkt und reproduziere die Ausgabe für ein Composite-Projekt mit mehreren Teilprojekten. Verfolge, wie jeder Statistikabschnitt pro Projekt ausgegeben wird; abgeschlossen ist die Aufgabe, wenn jeder Abschnitt den tsconfig-Pfad angibt, den er beschreibt, wobei das bestehende Diagnoseverhalten erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
compilers
Issue-Typ
Feature
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.