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

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));
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"));
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));
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));
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.

Quiz: składnia eksportu CJS
Szybkie sprawdzenie: eksportowanie w CommonJS.

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.

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
- Podstawy ESM — import/export, default a named
- Podstawy CommonJS — require/module.exports i exports
- Rozwiązywanie modułów w Node i bundlerach przeglądarkowych