Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2020年1月.
import.meta オブジェクトはコンテキスト固有のメタデータを JavaScript のモジュールに公開します。これには、モジュールの URL のようなモジュールに関する情報が含まれています。
import.meta オブジェクトはホスト環境によって生成され、拡張可能な null プロトタイプオブジェクトとして、すべてのプロパティが書き込み可能、構成不可、列挙可能となります。仕様では定義すべきプロパティは指定されていませんが、ホストは通常次のプロパティを実装します。
urlモジュールの完全な URL。クエリーの引数やハッシュ(? または #)を含みます。ブラウザーでは、これはスクリプトが取得された URL (外部スクリプトの場合)か、包含文書の URL (インラインスクリプトの場合)のいずれかです。 Node.js では、これはファイルパス(file:// プロトコルを含む)です。
resolve現在のモジュールの URL を基点として、モジュール指定子を URL に解決します。
import.meta 構文は、キーワード import、ドット、識別子 meta で構成されます。 import は識別子ではなく予約語であるため、これはプロパティアクセサーではなく、特別な式構文です。
import.meta メタプロパティは JavaScript でモジュール内で利用できます。モジュール外(モジュール内の 直接 eval() を含む)で import.meta を使用すると構文エラーになります。
import指定子で引数を指定することで、モジュール固有の引数渡しが可能になります。これは、アプリケーション全体の window.location (Node.js では process.argv 経由)から引数を取得する手法を補完するものです。例えば、以下の HTML では、
index.mjs モジュールは、import.meta を通じて someURLInfo 引数を取得できます。
ファイルが別のファイルをインポートする場合も同様です。
Node.js の ES モジュール実装は、後者の例のようにクエリー引数(またはハッシュ)を含むモジュール指定子の解決に対応状況を示しています。ただし、 CLI コマンド(例えば node index.mjs?someURLInfo=5)でモジュールを指定する場合、クエリーやハッシュは使用できません。 CLI のエントリーポイントは CommonJS に似た解決モードを採用しており、パスを URL ではなくファイルパスとして扱うためです。エントリポイントモジュールに引数を渡すには、同様に CLI 引数を使用し、 process.argv を通じて読み取ってください(例: node index.mjs --someURLInfo=5)。
Node.js の CommonJS モジュールでは、現在のモジュールを含むフォルダー内の絶対パスを保持する __dirname 変数が存在し、相対パスの解決に有用です。一方、ESモジュールでは import.meta を除きコンテキスト変数を使用することはできません。そのため、相対ファイルを解決するには import.meta.url を使用することができます。これはファイルシステムパスではなく URL が使用されています。
使用前 (CommonJS):
使用後 (ES modules):
| ECMAScript® 2027 Language Specification # prod-ImportMeta |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年9月8日 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.