"module"

Format modułów w wygenerowanym kodzie i sposób rozumienia importów.

Na tej stronie

Przykład

#
JSON
{
  "compilerOptions": {
    "module": "NodeNext",
    "moduleResolution": "NodeNext"
  }
}

Definicja i zastosowanie

#

Opcja module decyduje, w jakim systemie modułów kompilator zapisze importy i eksporty: jako moduły ES (ESNext, ES2022), CommonJS (CommonJS, czyli require) albo w trybach zgodnych z Node.js (Node16, NodeNext).

W aplikacjach przeglądarkowych z bundlerem najczęściej używa się ESNext razem z moduleResolution: "Bundler". W bibliotekach i projektach uruchamianych bezpośrednio w Node.js zalecane jest NodeNext, które respektuje pole type w package.json i rozszerzenia plików.

Źle dobrane ustawienie objawia się błędami typu „Cannot use import statement outside a module” albo „require is not defined” w działającym programie.

Składnia

#
Składnia
"module": "ESNext"

Dobre praktyki

#
  • Dla Node.js wybieraj parę module i moduleResolution ustawioną na NodeNext.
  • W aplikacjach z Vite lub Next.js zostaw ustawienia z szablonu projektu, są dobrane do bundlera.

Powiązane hasła

#

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