"moduleResolution"

Algorytm, którym kompilator odnajduje pliki wskazane w importach.

Na tej stronie

Przykład

#
JSON
{
  "compilerOptions": {
    "module": "ESNext",
    "moduleResolution": "Bundler"
  }
}

Definicja i zastosowanie

#

Opcja moduleResolution określa, jak kompilator zamienia napis z importu, na przykład "react" albo "./utils", na konkretny plik z kodem i typami.

Bundler naśladuje zachowanie narzędzi takich jak Vite czy webpack: pozwala pomijać rozszerzenia plików i rozumie pole exports w pakietach. NodeNext odwzorowuje dokładne zasady Node.js, w którym w modułach ES rozszerzenie w imporcie jest obowiązkowe.

Starsza wartość Node (nazywana też node10) nie obsługuje pola exports i nie jest już zalecana w nowych projektach.

Składnia

#
Składnia
"moduleResolution": "Bundler"

Więcej przykładów

#
Import z rozszerzeniem w NodeNext
TypeScript
// moduleResolution: "NodeNext", plik ES
import { add } from './math.js'
// W NodeNext podajesz rozszerzenie .js, nawet gdy plik źródłowy to math.ts.

Dobre praktyki

#
  • W aplikacjach z bundlerem używaj Bundler, w kodzie dla Node.js NodeNext.
  • Jeśli import pakietu nagle „nie ma typów”, sprawdź, czy moduleResolution rozumie pole exports tego pakietu.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.