--- title: import.meta slug: Web/JavaScript/Reference/Statements/import.meta tags: - JavaScript - Language feature - Modules - Reference - Statement - import - import.meta translation_of: Web/JavaScript/Reference/Statements/import.meta ---
import.meta オブジェクトはコンテキスト固有のメタデータを JavaScript のモジュールに公開します。これには、モジュールの URL のようなモジュールに関する情報が含まれています。
import.meta
構文は、import キーワードとドット、プロパティ名の meta で構成されています。通常、ドットの左側はプロパティアクセスが実行されるオブジェクトですが、ここでの import はオブジェクトではありません。
import.meta オブジェクトは ECMAScript 実装によって生成され、プロトタイプは {{jsxref("null")}} です。オブジェクトは拡張でき、そのプロパティは書き込み、構成、列挙可能です。
my-module.mjs モジュールを指定します。
<script type="module" src="my-module.js"></script>
import.meta オブジェクトを使用してモジュールのメタ情報にアクセスできます。
console.log(import.meta); // { url: "file:///home/user/my-module.js" }
モジュールのベース URL を示す url プロパティを持つオブジェクトを返します。これは、外部スクリプトの場合はスクリプトを取得した URL、インラインスクリプトの場合はそれを含むドキュメントのベース URL です。
これには、クエリパラメータまたはハッシュ(つまり、? または #)が含まれることに注意してください。
例えば、以下のような HTML で
<script type="module"> import './index.mjs?someURLInfo=5'; </script>
以下の JavaScript ファイルは、someURLInfo パラメータをログに記録します。
// index.mjs
new URL(import.meta.url).searchParams.get('someURLInfo'); // 5
ファイルが別のファイルをインポートする場合も同様です。
// index.mjs
import './index2.mjs?someURLInfo=5';
// index2.mjs
new URL(import.meta.url).searchParams.get('someURLInfo'); // 5
メモ: 後者の例のように Node.js はクエリパラメータ(またはハッシュ)を渡しますが、Node 14.1.0 以降、クエリパラメータを持つ URL を node --experimental-modules index.mjs?someURLInfo=5 という形式で読み込むとエラーになることに注意してください(この文脈では URL ではなくファイルとして扱われます)。
このようなファイル固有の引数の受け渡しは、アプリケーション全体の location.href(HTML ファイルパスの後にクエリ文字列やハッシュを追加したもの [Node.js では process.argv を介して])で使用されているものを補完する場合があります。
| 仕様書 |
|---|
import.meta proposal |
| {{SpecName("HTML WHATWG", "webappapis.html#hostgetimportmetaproperties", "import.meta")}} |
{{Compat("javascript.statements.import_meta")}}