Yashotantra Academy logo
← Node.js theorytheory 0/50 · 0%
level 1
Curious · 0 XP
streak
0d
perfect
0
badges
0

100 XP to Apprentice

Modules · easy

4. ECMAScript modules (ESM)

import/export syntax and how Node tells the two systems apart.

1 min read3 questionsup to 50 XPtopic 4/50

Read in another language

AI translates the explanation and quiz text while preserving code and answer scoring.

Node also supports native ES modules using `import`/`export`. You opt in either by naming a file `.mjs`, or by setting `"type": "module"` in `package.json` (in which case `.cjs` opts back into CommonJS).

js
// math.mjs
export function add(a, b) { return a + b; }
export default add;

// index.mjs
import add, { add as add2 } from "./math.mjs";

Unlike `require`, ESM imports are resolved and linked before any code runs (static analysis), which enables tree-shaking by bundlers, and top-level `await` is allowed. ESM and CommonJS can interoperate, but a CommonJS file cannot `require` an ESM file directly — it must use a dynamic `import()`.

How to study this topic

  1. 1. Read the explanation once end to end, skipping the code.
  2. 2. Re-read the code snippets and say out loud what each line does.
  3. 3. Answer the quiz without scrolling back — that is the real check.
  4. 4. Read every explanation, even for the answers you got right.

Scoring

  • · Up to 30 XP from quiz accuracy.
  • · +15 XP for a perfect first attempt.
  • · +5 XP while a 3-day streak is running.
  • · 75% or higher marks the topic complete.

Check your understanding

  1. 1. How do you mark a project as using ESM by default?

  2. 2. What can ESM do that CommonJS cannot?

  3. 3. How does a CommonJS file load an ESM module?

Badges

First light
Pass your first topic
Sharp shooter
3 perfect first-try quizzes
On a roll
Study 3 days in a row
Week warrior
Study 7 days in a row
Grinder
Earn 500 XP
Deep diver
Earn 1500 XP