mdn: https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/import.meta ## 概要 `import.meta` オブジェクトはコンテキスト固有のメタデータを JavaScript のモジュールに公開する。これには、モジュールの URL のようなモジュールに関する情報が含まれる。 構文 ```js import.meta ``` 構文は `import` キーワードとドット、プロパティ名の `meta` で構成されている。通常、ドットのプロパティアクセスが実行されるオブジェクトだが、ここでの `import` はオブジェクトではない。 `import.meta` オブジェクトは ECMAScript 実装によって生成され、プロトタイプは `null` となる。オブジェクトは拡張でき、そのプロパティは書き込み、構成、列挙可能である。 ## 実際に使用 `my-modules.msj` モジュールを指定する。 ```html <script type="module" src="my-module.js"></script> ``` `import.meta` オブジェクトを使用してモジュールのメタ情報にアクセスできる。 ```js console.log(import.meta); // { url: "file:///home/user/my-module.js" } ``` モジュールのベース URL を示す `url` プロパティを持つオブジェクトを返す。そのまま読みたいなら、`import.meta.url` を使用すればよい。 使用例 [[Denoでデータ取得|deno fetch]] ## RPEL では使用できない [[DenoのREPL|deno repl]] で見てみようと思っても、モジュール外では利用できないというエラーが表示される。 ```js ❯ deno Deno 1.33.3 exit using ctrl+d, ctrl+c, or close() REPL is running with all permissions allowed. To specify permissions, run `deno repl` with allow flags. > import.meta Uncaught SyntaxError: Cannot use 'import.meta' outside a module ```