हे JavaScript च्या दोन मॉड्यूल सिस्टम आहेत जे कोड विविध फाइलमध्ये विभाजित करतात.
ES Modules (ESM) — आधुनिक मानक
// import / export, used in browsers and modern Node
import { sum } from ;
defaultThing ;
x = ;
() {};
हे JavaScript च्या दोन मॉड्यूल सिस्टम आहेत जे कोड विविध फाइलमध्ये विभाजित करतात.
// import / export, used in browsers and modern Node
import { sum } from ;
defaultThing ;
x = ;
() {};
const { sum } = require("./math");
module.exports = { x: 1 };
| ES Modules | CommonJS | |
|---|---|---|
| सिंटॅक्स | import/export | require/module.exports |
| लोडिंग | static, async | dynamic, synchronous |
| विश्लेषणयोग्य | ✅ → tree-shaking | ❌ कठिण |
| बंधन | live (read-only) | नकल केलेले मूल्य |
this शीर्षावर | undefined | module.exports |
Static म्हणजे ESM imports पार्स वेळी ज्ञात आहेत, जे bundlers ला tree-shaking (अप्रयुक्त exports काढून टाकणे) करू देते. CommonJS require गतिशील आहे (आप सशर्त require करू शकता), म्हणून त्याचे विश्लेषण करणे अधिक कठीण आहे.
{ "type": "module" } // in package.json, or use the .mjs extension
आप CommonJS मधून ESM-only पॅकेज require() करू शकत नाही; दोन्ही मिश्रित करण्यास मुरडलेले कोपरे आहेत. ESM imports देखील live bindings आहेत — जर निर्यातकर्ता मूल्य बदलला, तर आयातकर्त्यांना नवीन मूल्य दिसते (CJS आपल्याला snapshot प्रतिलिपी देते).
ESM भविष्य आहे (browser-native, tree-shakeable, top-level await).
नवीन कोडसाठी त्याला प्राधान्य द्या; CJS समजा कारण Node पारिस्थितिकीचा बराच भाग अजूनही त्यास वापरत आहे.
सविस्तर उत्तरांसह IT मुलाखत प्रश्नांचे ग्रंथालय — Junior पासून Senior पर्यंत.
देणगी द्या