Dawn żewġ sistemi ta' moduli ta' JavaScript għall-qsim tal-kodiċi fuq fajls.
ES Modules (ESM) — il-standard modern
js
// import / export, used in browsers and modern Node
import { sum } from "./math.js";
defaultThing ;
x = ;
() {};
Dawn żewġ sistemi ta' moduli ta' JavaScript għall-qsim tal-kodiċi fuq fajls.
// import / export, used in browsers and modern Node
import { sum } from "./math.js";
defaultThing ;
x = ;
() {};
const { sum } = require("./math");
module.exports = { x: 1 };
| ES Modules | CommonJS | |
|---|---|---|
| Sintassi | import/export | require/module.exports |
| Tagħbija | static, async | dinaminku, sinkronu |
| Analiżabbli | ✅ → tree-shaking | ❌ aktar diffiċli |
| Irbit | live (qari biss) | valur ikkopjat |
this fuq | undefined | module.exports |
Static ifisser li l-imports ESM huma magħrufa fil-ħin tal-parse, li jippermetti lill-bundlers nagħmlu tree-shaking (ħadd l-esports li ma jintużaw). CommonJS require huwa dinaminku (tista' require b'mod kondizzjonali), għalhekk huwa aktar diffiċli li jiġi analizzat.
{ "type": "module" } // in package.json, or use the .mjs extension
M'għandekx tista' require() pakkett ESM-only minn CommonJS; il-taħlit taż-żewġ għandu truf irruħ. L-imports ESM huma wkoll live bindings — jekk l-esportatur ibiddel il-valur, l-importaturi jirtu l-valur ġdid (CJS jagħtik kopja ta' snapshot).
ESM huwa l-futur (nattiv tal-browser, tree-shakeable, top-level await).
Preferixxi għal kodiċi ġdid; ifthem CJS għax ħafna mill-ekosistema Node għad tuża.