Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
JavaScript 例外 "import declarations may only appear at top level of a module" は、import 宣言がモジュールの最上位レベルにない場合に発生します。これは、import 宣言が他の構文(関数やブロックなど)を含むか、多くの場合で言えば、現在のファイルがモジュールとして扱われていないことが原因である可能性があります。
関数やブロックなど、import 宣言が別の構造の中に含まれている場合が考えられます。import 宣言は、モジュールの最上位に記述する必要があります。モジュールを条件付きでインポートしたり、必要に応じて遅延インポートしたりしたい場合は、代わりに 動的インポート を使用してください。
もし import がすでにコードの最上位にある場合は、そのファイルがモジュールとして解釈されていない可能性があります。ランタイムは、ファイルがモジュールであるかどうかを判断するために外部からのヒントを要求します。そのようなヒントを提供する方法はいくつかあります。
それ以外にも、原因として考えられるのは、コンパイラー(TypeScript など)をつけて import を記述している際に、誤ってソースファイルを実行してしまった場合です。import 宣言は通常、プログラムの先頭に現れるため、パーサーがまずこれを検知し、エラーを報告してしまうのです。必ずソースファイルをコンパイルし、コンパイルされたファイルを実行するようにしてください。
Python と同様に、他の構文の内部で import を使用することはできません。
import を最上位に移動するか、動的インポートを使用するかしてください。
HTML からスクリプトを読み込む場合は、必ず <script> タグに type="module" 属性を追加してください。
何らかの理由でスクリプトをモジュールに移行できない場合は、動的インポートを使用することができます。
This page was last modified on 2026年5月24日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.