Ce face traceResolution
Când tsc spune „Cannot find module” (TS2307) sau găsește alt fișier decât te aștepți, traceResolution arată fiecare pas: ce algoritm se folosește (NodeNext, Bundler…), în ce mod (ESM sau CommonJS), ce condiții din exports sunt active, ce fișiere sunt încercate și care a fost găsit.
Rezultatul este foarte lung: include și căutarea bibliotecilor standard (de exemplu pachetele @typescript/lib-*, pe care libReplacement le caută). Redirecționează-l într-un fișier și caută numele importului. Implicit: false.
Parametri
| Parametru | Descriere |
|---|---|
true |
Pașii rezolvării sunt afișați. |
false |
Valoarea implicită. |
Exemple
Exemplul 1: Rezolvarea unui import relativ
Primele rânduri ale rezultatului, pentru import { cuTva } from "./calcul.js" cu module: nodenext (cu --libReplacement false, ca să lipsească căutarea bibliotecilor).
// index.ts
import { cuTva } from "./calcul.js";
console.log(cuTva(100));
Rezultat (tsc 5.9)
$ npx tsc --traceResolution --libReplacement false | head -9
Found 'package.json' at '/proiect/package.json'.
File '/proiect/package.json' exists according to earlier cached lookups.
======== Resolving module './calcul.js' from '/proiect/index.ts'. ========
Module resolution kind is not specified, using 'NodeNext'.
Resolving in ESM mode with conditions 'import', 'types', 'node'.
Loading module as file / folder, candidate module location '/proiect/calcul.js', target file types: TypeScript, JavaScript, Declaration, JSON.
File name '/proiect/calcul.js' has a '.js' extension - stripping it.
File '/proiect/calcul.ts' exists - use it as a name resolution result.
======== Module name './calcul.js' was successfully resolved to '/proiect/calcul.ts'. ========
Greșeli frecvente
- Să citești tot rezultatul în terminal. Caută rândul
======== Resolving module 'nume'și citește doar blocul lui.
Comenzi înrudite
moduleResolution: Alege regulile după care tsc găsește fișierul din spatele unui import („./calcul.js”, „react”, „@/utile”).explainFiles: Afișează fiecare fișier din compilare și motivul pentru care a fost inclus (include, import, lib, types).paths: Definește prescurtări pentru importuri (de exemplu „@/utile/calcul” pentru ./src/utile/calcul) folosite la verificarea tipurilor.resolvePackageJsonExports: Folosește câmpurile exports și imports din package.json la rezolvarea importurilor de pachete și a celor cu #.