explainFiles în TypeScript

tsconfig: diagnosticare TypeScript 4.2

Afișează fiecare fișier din compilare și motivul pentru care a fost inclus (include, import, lib, types).

Sintaxă
tsc --explainFiles

"compilerOptions": { "explainFiles": true }

Ce face explainFiles

Uneori în compilare ajung fișiere pe care nu le aștepți: un fișier din afara lui src, un pachet de tipuri, un test. explainFiles afișează pentru fiecare fișier de ce este acolo: „Matched by include pattern”, „Imported via … from file …”, „Library referenced via …”, „Entry point for implicit type library”. Pentru fișierele .ts spune și dacă sunt module ES sau CommonJS și de ce.

Rezultatul este lung (fiecare fișier de bibliotecă apare și el); filtrează-l sau redirecționează-l într-un fișier. Implicit: false.

Parametri

Parametru Descriere
true Explicația este afișată după compilare.
false Valoarea implicită.

Exemple

Exemplul 1: De ce este config.ts în program

include conține doar src, dar config.ts apare totuși: este importat din src/index.ts. Rândurile despre bibliotecile standard au fost filtrate.

// tsconfig.json
{
  "compilerOptions": {
    "module": "nodenext",
    "target": "es2022",
    "noEmit": true,
    "types": []
  },
  "include": ["src"]
}

// src/index.ts
import { a } from "../config.js";
console.log(a);

Rezultat (tsc 5.9)

$ npx tsc --explainFiles | awk '/^[^ ]/{p = ($0 !~ /typescript\/lib/)} p'
config.ts
  Imported via "../config.js" from file 'src/index.ts'
  File is ECMAScript module because 'package.json' has field "type" with value "module"
src/index.ts
  Matched by include pattern 'src' in 'tsconfig.json'
  File is ECMAScript module because 'package.json' has field "type" with value "module"

Greșeli frecvente

  • Să adaugi un director în exclude și să te miri că fișierele lui sunt încă compilate. exclude se aplică doar lui include; fișierele importate intră oricum, iar explainFiles arată cine le importă.

Comenzi înrudite

  • --listFilesOnly: Afișează fișierele care fac parte din compilare; –listFilesOnly se oprește aici, –listFiles compilează și apoi le afișează.
  • traceResolution: Afișează pas cu pas cum găsește tsc fișierul din spatele fiecărui import; util la erori TS2307.
  • rootDir: Spune care director este rădăcina surselor; structura de sub el se păstrează în outDir.