To su dva JavaScript modula za dijeljenje koda u datotekama.
ES Moduli (ESM) — moderni standard
// import / export, used in browsers and modern Node
import { sum } from ;
defaultThing ;
x = ;
() {};
To su dva JavaScript modula za dijeljenje koda u datotekama.
// import / export, used in browsers and modern Node
import { sum } from ;
defaultThing ;
x = ;
() {};
const { sum } = require("./math");
module.exports = { x: 1 };
| ES Moduli | CommonJS | |
|---|---|---|
| Sintaksa | import/export | require/module.exports |
| Učitavanje | static, async | dynamic, synchronous |
| Analizabilno | ✅ → tree-shaking | ❌ teže |
| Veze | live (read-only) | kopirana vrijednost |
this na vrhu | undefined | module.exports |
Statički znači da su ESM importi poznati tijekom vremena parsiranja, što bundlerima omogućava tree-shaking (ispuštanje nekorištenih exporta). CommonJS require je dinamičan (možete uvjetno require), pa se ne može lako analizirati.
{ "type": "module" } // in package.json, or use the .mjs extension
Ne možete require() paket samo za ESM iz CommonJS-a; miješanje dva ima grubo rubove. ESM importi su također živih veze — ako izvoznik promijeni vrijednost, importeri vide novu vrijednost (CJS vam daje snapshot kopiju).
ESM je budućnost (browser-native, tree-shakeable, top-level await).
Preporučujemo ga za novi kod; razumijevanja CJS jer velik dio Node ekosustva još uvijek ga koristi.
Knjižnica IT pitanja za razgovore za posao s detaljnim odgovorima — od Juniora do Seniora.
Doniraj