Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Ausdrücke und Operatoren
  5. import.meta

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

View in EnglishAlways switch to English

import.meta

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Januar 2020⁩.

Dieimport.meta Meta-Eigenschaft stellt kontextspezifische Metadaten für ein JavaScript-Modul bereit. Sie enthält Informationen über das Modul, wie zum Beispiel die URL des Moduls.

Syntax

js
import.meta

Wert

Dasimport.meta Objekt wird von der Host-Umgebung als ein erweiterbaresNull-Prototyp Objekt erstellt, bei dem alle Eigenschaften beschreibbar, konfigurierbar und aufzählbar sind. Die Spezifikation gibt keine Eigenschaften vor, die darauf definiert werden müssen, aber Hosts implementieren normalerweise die folgenden Eigenschaften:

url

Die vollständige URL zum Modul, einschließlich Abfrageparametern und/oder Hash (nach dem? oder#). In Browsern ist dies entweder die URL, von der das Skript bezogen wurde (für externe Skripte) oder die URL des enthaltenen Dokuments (für Inline-Skripte). In Node.js ist dies der Dateipfad (einschließlich desfile:// Protokolls).

resolve

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

Beschreibung

Dieimport.meta Syntax besteht aus dem Schlüsselwortimport, einem Punkt und dem Bezeichnermeta. Daimport einreserviertes Wort ist und kein Bezeichner, handelt es sich hierbei nicht um einenEigenschafts-Accessor, sondern um eine spezielle Ausdruckssyntax.

Dieimport.meta Meta-Eigenschaft ist in JavaScript-Modulen verfügbar; die Verwendung vonimport.meta außerhalb eines Moduls (einschließlichdirektemeval() innerhalb eines Moduls) führt zu einem Syntaxfehler.

Beispiele

Übergabe von Abfrageparametern

Die Verwendung von Abfrageparametern imimport Spezifizierer ermöglicht die übermittlung modulspezifischer Argumente, die möglicherweise komplementär zur Lektüre von Parametern aus der anwendungsweitenwindow.location (oder in Node.js überprocess.argv) sind. Zum Beispiel mit dem folgenden HTML:

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

Dasindex.mjs Modul kann densomeURLInfo Parameter überimport.meta abrufen:

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

Dasselbe gilt, wenn ein Modul ein anderes importiert:

js
// index.mjsimport "./index2.mjs?someURLInfo=5";// index2.mjsnew URL(import.meta.url).searchParams.get("someURLInfo"); // 5

Die ES-Modul-Implementierung in Node.js unterstützt die Auflösung von Modulspezifizierern, die Abfrageparameter (oder den Hash) enthalten, wie im zuletzt genannten Beispiel. Sie können jedoch keine Abfragen oder Hashes verwenden, wenn das Modul über den CLI-Befehl angegeben wird (wienode index.mjs?someURLInfo=5), da der CLI-Einstiegspunkt einen eher CommonJS-ähnlichen Auflösungsmodus 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 mittelsprocess.argv (wienode index.mjs --someURLInfo=5).

Auflösung einer Datei relativ zur aktuellen

In Node.js CommonJS-Modulen gibt es eine__dirname-Variable, die den absoluten Pfad zum Ordner enthält, der das aktuelle Modul enthält, was zur Auflösung relativer Pfade nützlich ist. ES-Module können jedoch keine kontextbezogenen Variablen haben, außerimport.meta. Daher können Sie zur Auflösung einer relativen Dateiimport.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

Specification
ECMAScript® 2026 Language Specification
# prod-ImportMeta

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp