[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/import.meta [Back]  [Original]

import.meta - JavaScript | MDN

Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.

View in English Always switch to English

import.meta

Baseline Weitgehend verfgbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Januar 2020 browserbergreifend verfgbar.

Die import.meta Meta-Eigenschaft stellt kontextspezifische Metadaten fr ein JavaScript-Modul bereit. Sie enthlt Informationen ber das Modul, wie zum Beispiel die URL des Moduls.

In diesem Artikel

Syntax

js
import.meta

Wert

Das import.meta Objekt wird von der Host-Umgebung als ein erweiterbares Null-Prototyp Objekt erstellt, bei dem alle Eigenschaften beschreibbar, konfigurierbar und aufzhlbar sind. Die Spezifikation gibt keine Eigenschaften vor, die darauf definiert werden mssen, aber Hosts implementieren normalerweise die folgenden Eigenschaften:

url

Die vollstndige URL zum Modul, einschlielich Abfrageparametern und/oder Hash (nach dem ? oder #). In Browsern ist dies entweder die URL, von der das Skript bezogen wurde (fr externe Skripte) oder die URL des enthaltenen Dokuments (fr Inline-Skripte). In Node.js ist dies der Dateipfad (einschlielich des file:// Protokolls).

resolve

Lst einen Modulspezifizierer zu einer URL auf, wobei die aktuelle Modul-URL als Basis verwendet wird.

Beschreibung

Die import.meta Syntax besteht aus dem Schlsselwort import, einem Punkt und dem Bezeichner meta. Da import ein reserviertes Wort ist und kein Bezeichner, handelt es sich hierbei nicht um einen Eigenschafts-Accessor, sondern um eine spezielle Ausdruckssyntax.

Die import.meta Meta-Eigenschaft ist in JavaScript-Modulen verfgbar; die Verwendung von import.meta auerhalb eines Moduls (einschlielich direktem eval() innerhalb eines Moduls) fhrt zu einem Syntaxfehler.

Beispiele

bergabe von Abfrageparametern

Die Verwendung von Abfrageparametern im import Spezifizierer ermglicht die bermittlung modulspezifischer Argumente, die mglicherweise komplementr zur Lektre von Parametern aus der anwendungsweiten window.location (oder in Node.js ber process.argv) sind. Zum Beispiel mit dem folgenden HTML:

html
<script type="module">
  import "./index.mjs?someURLInfo=5";
</script>

Das index.mjs Modul kann den someURLInfo Parameter ber import.meta abrufen:

js
// index.mjs
new URL(import.meta.url).searchParams.get("someURLInfo"); // 5

Dasselbe gilt, wenn ein Modul ein anderes importiert:

js
// index.mjs
import "./index2.mjs?someURLInfo=5";

// index2.mjs
new URL(import.meta.url).searchParams.get("someURLInfo"); // 5

Die ES-Modul-Implementierung in Node.js untersttzt die Auflsung von Modulspezifizierern, die Abfrageparameter (oder den Hash) enthalten, wie im zuletzt genannten Beispiel. Sie knnen jedoch keine Abfragen oder Hashes verwenden, wenn das Modul ber den CLI-Befehl angegeben wird (wie node index.mjs?someURLInfo=5), da der CLI-Einstiegspunkt einen eher CommonJS-hnlichen Auflsungsmodus verwendet, der den Pfad als Dateipfad statt als URL behandelt. Um Parameter an das Einstiegspunktmodul zu bergeben, verwenden Sie CLI-Argumente und lesen Sie sie mittels process.argv (wie node index.mjs --someURLInfo=5).

Auflsung einer Datei relativ zur aktuellen

In Node.js CommonJS-Modulen gibt es eine __dirname-Variable, die den absoluten Pfad zum Ordner enthlt, der das aktuelle Modul enthlt, was zur Auflsung relativer Pfade ntzlich ist. ES-Module knnen jedoch keine kontextbezogenen Variablen haben, auer import.meta. Daher knnen Sie zur Auflsung einer relativen Datei import.meta.url verwenden. Beachten Sie, dass hierbei URLs statt Dateisystempfaden verwendet werden.

Vorher (CommonJS):

js
const fs = require("fs/promises");
const path = require("path");

const filePath = path.join(__dirname, "someFile.txt");
fs.readFile(filePath, "utf8").then(console.log);

Nachher (ES-Module):

js
import fs from "node:fs/promises";

const fileURL = new URL("./someFile.txt", import.meta.url);
fs.readFile(fileURL, "utf8").then(console.log);

Spezifikationen

Spezifikation
ECMAScript 2027 LanguageSpecification
# prod-ImportMeta

Browser-Kompatibilitt

Siehe auch


Web Proxy Viewer  |  New URL  |  Original Page