🟨

import と require の違い

2024/04/03に公開
import require
モジュールシステム ECMAScript Modules (ESM) CommonJS
使用環境 ブラウザとNode.js Node.js
読み込みタイミング 静的にモジュールを読み込む 実行時にモジュールを読み込む
型情報 含む 含まない
デフォルトエクスポート 1つのみ すべて
ファイルパス 相対パスと絶対パス 相対パス
構文 簡潔 複雑
その他 動的import, 名前空間など CommonJSモジュールのエコシステム

解説

ECMAScript Modules (ESM) と CommonJS

https://zenn.dev/btc/articles/240403_esm_commonjs

静的にモジュールを解析するとは?

https://zenn.dev/btc/articles/240403_static_analysis

importとrequireにおけるデフォルトエクスポートの違い

https://zenn.dev/btc/articles/240403_default_export

どちらを使用するべきか

  • ブラウザで動作するコード: importを使用
  • Node.jsで動作するコード: requireを使用
  • 新しい機能を使用したい場合: importを使用
  • 既存のCommonJSモジュールと互換性を保ちたい場合: requireを使用

Discussion