🟨
import と require の違い
| import | require | |
|---|---|---|
| モジュールシステム | ECMAScript Modules (ESM) | CommonJS |
| 使用環境 | ブラウザとNode.js | Node.js |
| 読み込みタイミング | 静的にモジュールを読み込む | 実行時にモジュールを読み込む |
| 型情報 | 含む | 含まない |
| デフォルトエクスポート | 1つのみ | すべて |
| ファイルパス | 相対パスと絶対パス | 相対パス |
| 構文 | 簡潔 | 複雑 |
| その他 | 動的import, 名前空間など | CommonJSモジュールのエコシステム |
解説
ECMAScript Modules (ESM) と CommonJS
静的にモジュールを解析するとは?
importとrequireにおけるデフォルトエクスポートの違い
どちらを使用するべきか
- ブラウザで動作するコード: importを使用
- Node.jsで動作するコード: requireを使用
- 新しい機能を使用したい場合: importを使用
- 既存のCommonJSモジュールと互換性を保ちたい場合: requireを使用
Discussion