From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../reference/statements/import.meta/index.html | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 files/ja/web/javascript/reference/statements/import.meta/index.html (limited to 'files/ja/web/javascript/reference/statements/import.meta/index.html') diff --git a/files/ja/web/javascript/reference/statements/import.meta/index.html b/files/ja/web/javascript/reference/statements/import.meta/index.html new file mode 100644 index 0000000000..b6d12f830a --- /dev/null +++ b/files/ja/web/javascript/reference/statements/import.meta/index.html @@ -0,0 +1,101 @@ +--- +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 +--- +
{{JSSidebar("Statements")}}
+ +

import.meta オブジェクトはコンテキスト固有のメタデータを JavaScript のモジュールに公開します。これには、モジュールの URL のようなモジュールに関する情報が含まれています。

+ +

構文

+ +
import.meta
+ +

説明

+ +

構文は、import キーワードとドット、プロパティ名の meta で構成されています。通常、ドットの左側はプロパティアクセスが実行されるオブジェクトですが、ここでの import はオブジェクトではありません。

+ +

import.meta オブジェクトは ECMAScript 実装によって生成され、プロトタイプは {{jsxref("null")}} です。オブジェクトは拡張でき、そのプロパティは書き込み、構成、列挙可能です。

+ +

+ +

import.meta を使用する

+ +

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")}}

+ +

実装の進捗状況

+ +

この機能はまだブラウザー間の安定性に達していないため、以下の表で、この機能の毎日の実装状況を示しています。このデータは、JavaScript の標準テストスイートである Test262 で、ナイトリービルド、または各ブラウザーの JavaScript エンジンの最新リリースで、関連する機能テストを実行することで生成されます。

+ +
{{EmbedTest262ReportResultsTable("import.meta")}}
+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf