いつ読むか?

  • ESM と CommonJS をもう一度理解したいとき

読書メモ

要点

  • Node.js のモジュール形式は拡張子と package.json"type" フィールドで決まる
    • .js: デフォルトは CommonJS、"type": "module" で ESM
    • .mjs: 常に ESM、.cjs: 常に CommonJS
  • ESM から CommonJS は読み込める。CommonJS から ESM は読み込めない(重要)

推奨設定

新規プロジェクト:

  • package.json"type": "module"
  • tsconfig.json"module": "NodeNext"

公開ライブラリ:

  • CommonJS と ESM の両対応(デュアルパッケージ)が現実的

いつ使うか

  • Node.js + TypeScript プロジェクトの初期設定時
  • ESM 移行を検討するとき
  • CommonJS から ESM が読み込めないエラーに遭遇したとき