とtype=\"module\"を追加する。 2. Node.js: package.jsonに\"type\": \"module\"を追加する。 3. またはファイル拡張子を.mjsにする。 4. CommonJSのrequire()とESMのimportは混在できないので統一する。"}]}

← エラー辞典に戻る

JavaScript

import文でエラーが出る

モジュール設定がされていない

こんな症状

import文を書いたら「Cannot use import statement outside a module」と表示される。モジュール設定で起きるよ。

まず試す

ブラウザは <script type="module" src="app.js">、Node.jsは package.json に "type": "module" を追加する。

js
<!-- ブラウザ: type="module" を付ける -->
<script type="module" src="app.js"></script>

これで直らなければ、下の「自分のケース」を確認。

🔍 自分のケースはどれ?

  • ブラウザで import を使った
    → <script type="module"> にする。
  • Node.jsで import を使った
    → package.json に "type": "module" を足す(またはファイルを .mjs に)。
  • require と import が混在
    → CommonJS と ESM は混ぜられない。どちらかに統一する。

なぜ起きる?

HTMLのscriptタグにtype="module"が指定されていない、またはNode.jsでpackage.jsonに"type":"module"がないよ。ブラウザやNode.jsはデフォルトでスクリプトを「クラシックモード」として扱い、import/export構文を認識しないんだ。モジュールモードに切り替える必要があるよ。

✕ エラーが起きるコード
<!-- type指定なしのscriptでimportを使うと… -->
<script src='app.js'></script>

// app.js
import { sum } from './math.js';
// Uncaught SyntaxError: Cannot use import statement outside a module
✓ 直したコード
<!-- ✅ type='module' を付ける -->
<script type='module' src='app.js'></script>

// Node.jsの場合は package.json に追記
// { 'type': 'module' }
// またはファイルを .mjs 拡張子にする

✅ 直ったか確認

import がエラーなく動き、読み込んだ関数等が使えればOK。

🆘 まだ直らないときは

type="module" の script は file:// で開くと CORS で失敗する。ローカルサーバー(npm run dev 等)で開く。

Q&Aで質問する →

この解決法は役立ちましたか?

🔗 関連するエラー

🔗 別カテゴリの関連エラー

📖 この問題を学べるレッスン

JavaScriptコース(基礎から)で根本から理解する →

✏️ 手を動かして練習

練習ドリル一覧で実際に書いて確認する →

📝 関連ブログ記事

📖 関連する用語

🚀 JavaScriptコースで基礎を学ぼう!

エラーの原因を根本から理解するには、基礎を体系的に学ぶのが近道です。完全無料・登録不要。

JavaScriptコースを始める →

❓ 関連するQ&A