Pergunta comum em entrevista de Node.js. A resposta abaixo está em inglês, do jeito que dá para falar numa entrevista: leia, feche e tente explicar com as suas palavras.
CommonJS: Node's original system, using require() and module.exports. require() loads synchronously. Use .cjs or package.json "type": "commonjs" to mark it explicitly.
ES Modules: the standard import/export syntax. Use .mjs or "type": "module". Node's ESM loader supports asynchronous loading and top-level await.
Modern Node can detect ESM-only syntax in an ambiguous .js file without an explicit type. Do not assume every unmarked .js file is CommonJS. Declare the package type.
Ler é o primeiro passo. No app, essa pergunta vira flashcard com repetição espaçada, e o módulo tem quiz e simulado para testar o que ficou.
Treinar essa pergunta no app