SyntaxError: Cannot use import statement outside a module
CommonJS環境でESMのimport文を使用した際に発生するSyntaxError
概要
SyntaxError: Cannot use import statement outside a module は、ES Modules(ESM)の import 構文をCommonJS環境で使用した際に発生するエラーです。Node.jsはデフォルトでCommonJSモジュールシステムを使用するため、ESM構文を使うには明示的な設定が必要です。
エラーメッセージ
SyntaxError: Cannot use import statement outside a module
(node:12345) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs file extension.
SyntaxError: Cannot use import statement outside a module
原因
- package.jsonに"type": “module"が未設定: Node.jsがファイルをCommonJSとして解釈している
- ファイル拡張子が.jsのまま: ESMとして認識されない
- TypeScriptのtsconfig設定不足: moduleオプションが適切でない
- Jestなどテストランナーの設定不足: テスト環境でESMが未対応
- CDN/scriptタグでtype=“module"が未指定: ブラウザ環境での設定漏れ
解決策
1. package.jsonに"type”: “module"を追加
| |
| |
2. ファイル拡張子を.mjsに変更
| |
| |
3. TypeScriptのtsconfig.json設定
| |
| |
4. CommonJS構文に書き換える
| |
5. Jestでの設定
| |
| |
6. ブラウザ環境での対応
| |
関連エラー
JavaScript の他のエラー
この記事は役に立ちましたか?