Tai yra du JavaScript modulio sistemos variantai, skirti kodui suskaidyti per failus.
ES moduliai (ESM) — šiuolaikinis standartas
// import / export, used in browsers and modern Node
import { sum } ;
defaultThing ;
x = ;
() {};
Tai yra du JavaScript modulio sistemos variantai, skirti kodui suskaidyti per failus.
// import / export, used in browsers and modern Node
import { sum } ;
defaultThing ;
x = ;
() {};
const { sum } = require("./math");
module.exports = { x: 1 };
| ES moduliai | CommonJS | |
|---|---|---|
| Sintaksė | import/export | require/module.exports |
| Įkėlimas | static, async | dinaminis, sinchroninis |
| Analizuojamas | ✅ → tree-shaking | ❌ sunkiau |
| Ryšiai | live (tik skaityti) | nukopijuota reikšmė |
this viršuje | undefined | module.exports |
Static reiškia, kad ESM importai žinomi analizės metu, o tai leidžia bundle'riams atlikti tree-shaking (pašalinti nenaudojamus eksportus). CommonJS require yra dinaminis (galite require sąlyginai), todėl jį sunkiau analizuoti.
{ "type": "module" } // in package.json, or use the .mjs extension
Negalite naudoti require() ESM-tik paketui iš CommonJS; abiejų mišinimas turi šiurkščių kraštų. ESM importai taip pat yra live ryšiai — jei eksportuotojas pakeičia reikšmę, importuotojai mato naują reikšmę (CJS suteikia jums snapshot kopijos).
ESM yra ateitis (native naršyklei, tree-shakeable, top-level await).
Teikite pirmenybę naujam kodui; supraskite CJS, nes didelė Node ekosistemos dalis ją vis dar naudoja.
IT pokalbių klausimų biblioteka su išsamiais atsakymais — nuo Junior iki Senior.
Paaukoti