0Pricing
JavaScript Academy · Lekcja

Podstawy CommonJS — require/module.exports i exports

Poznanie CommonJS: require(), module.exports, skrót exports oraz krótkie wprowadzenie do współpracy z ESM

Podstawy CommonJS — require/module.exports i exports to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 2 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

CJS: ogólny obraz

Cel: Odczytywanie i pisanie małych modułów CommonJS.

  • require() ładuje moduły
  • module.exports to obiekt eksportu
  • exports to skrót odwołujący się do tego samego obiektu
  • Krótkie wprowadzenie do współdziałania z ESM
Podstawy CommonJS — require/module.exports i exports — ilustracja 1

require() — idea

require(path) zwraca obiekt wyeksportowany przez moduł w CommonJS.

// CommonJS import uses require()
const cjsExample = [
  "const math = require(\\"./math.js\\");",
  "console.log(math.sum(2, 3));"
];

console.log("require() example:");
for (const line of cjsExample) console.log(line);

// Emulate a loaded module object
const loaded = { sum: function (a, b) { return a + b; } };
console.log("emulated require sum:", loaded.sum(2, 3));
Podstawy CommonJS — require/module.exports i exports — ilustracja 2

module.exports

Przypisanie wartości do module.exports powoduje jej eksport (może to być funkcja, obiekt itd.).

// module.exports sets what the module returns
const lines1 = [
  "function greet(name) { return \\"Hi \\" + name; }",
  "module.exports = greet;"
];

console.log("module.exports example:");
for (const l of lines1) console.log(l);

// Emulate consumption
function greet(name) { return "Hi " + name; }
const api1 = greet; // like module.exports = greet
console.log("use exported fn:", api1("Ayla"));
Podstawy CommonJS — require/module.exports i exports — ilustracja 3

Skrót exports

exports.prop = ... jest poprawne; nie należy ponownie przypisywać exports = ..., ponieważ przestaje ono wskazywać na module.exports.

// exports is a shortcut to module.exports (same object)
const lines2 = [
  "// Good: add properties",
  "exports.sum = function (a, b) { return a + b; };",
  "",
  "// Pitfall: reassigning exports breaks the link",
  "exports = function () {}; // WRONG"
];

console.log("exports shortcut:");
for (const l of lines2) console.log(l);

// Emulate good usage
const moduleObj = {};
const exportsRef = moduleObj;  // like exports === module.exports initially
exportsRef.sum = function (a, b) { return a + b; };
console.log("sum via exportsRef:", moduleObj.sum(2, 4));
Podstawy CommonJS — require/module.exports i exports — ilustracja 4

Wiele eksportów

Można eksportować obiekt zawierający wiele funkcji i odczytywać je za pomocą właściwości.

// Export an object with multiple members
const lines3 = [
  "function add(a, b) { return a + b; }",
  "function mul(a, b) { return a * b; }",
  "module.exports = { add, mul };"
];

console.log("multiple exports object:");
for (const l of lines3) console.log(l);

// Emulate consumption
const api2 = {
  add: function (a, b) { return a + b; },
  mul: function (a, b) { return a * b; }
};
console.log("use add/mul:", api2.add(1, 2), api2.mul(2, 3));
Podstawy CommonJS — require/module.exports i exports — ilustracja 5

ESM ↔ CJS w skrócie

Współdziałanie (w skrócie):

  • Importowanie CJS w ESM często powoduje otrzymanie obiektu CJS module.exports jako eksportu default.
  • Przykład: import pkg from "./cjs.js", a następnie użycie pkg.add().
  • Należy upraszczać przykłady i unikać mieszania stylów w jednym pliku, chyba że jest to konieczne.
Podstawy CommonJS — require/module.exports i exports — ilustracja 6

Quiz: składnia eksportu CJS

Szybkie sprawdzenie: eksportowanie w CommonJS.

Podstawy CommonJS — require/module.exports i exports — ilustracja 7

Podsumowanie

Podsumowanie: Należy ładować moduły za pomocą require(), eksportować za pomocą module.exports, dodawać właściwości przez exports.prop i unikać ponownego przypisywania exports. Współdziałanie z ESM często mapuje CJS module.exports na eksport domyślny.

Podstawy CommonJS — require/module.exports i exports — ilustracja 8

Często zadawane pytania

Czy lekcja „Podstawy CommonJS — require/module.exports i exports” jest bezpłatna?

Tak — pełny tekst „Podstawy CommonJS — require/module.exports i exports” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Podstawy CommonJS — require/module.exports i exports”?

Poznanie CommonJS: require(), module.exports, skrót exports oraz krótkie wprowadzenie do współpracy z ESM Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?

Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 3.

Ile czasu zajmuje lekcja „Podstawy CommonJS — require/module.exports i exports”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?

Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Podstawy ESM — import/export, default a named
  2. Podstawy CommonJS — require/module.exports i exports
  3. Rozwiązywanie modułów w Node i bundlerach przeglądarkowych
← Powrót do JavaScript Academy