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.excludese aplică doar luiinclude; fișierele importate intră oricum, iarexplainFilesarată 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.