Ana içeriğe geç

Modül meta verisi

Kavramlar

  • import.meta modülün bağlamı hakkında bilgi sağlayabilir.
  • Boolean import.meta.main mevcut modülün program giriş noktası olup olmadığını bilmenizi sağlar.
  • String import.meta.url mevcut modülün URL'sini verir.
  • String import.meta.filename mevcut modül için tam olarak çözülmüş yolu verir. Sadece yerel modüller için.
  • String import.meta.dirname mevcut modülü içeren dizinin tam olarak çözülmüş yolunu verir. Sadece yerel modüller için.
  • import.meta.resolve mevcut modüle göre spesifikasyonu çözmenizi sağlar. Bu fonksiyon başlangıçta sağlanan bir import haritasını (varsa) dikkate alır.
  • String Deno.mainModule ana modül giriş noktasının URL'sini verir, yani deno çalışma zamanı tarafından çağrılan modül.

Örnek

bilgi

Aşağıdaki örnek, import.meta.url, import.meta.main ve Deno.mainModule arasındaki farkı göstermek için iki modül kullanır. Bu örnekte, module_a.ts ana modül giriş noktasıdır.

module_b.ts
export function outputB() {
console.log("Modül B'nin import.meta.url", import.meta.url);
console.log("Modül B'nin mainModule url'si", Deno.mainModule);
console.log(
"Modül B ana modül mü import.meta.main üzerinden?",
import.meta.main,
);
}
module_a.ts
import { outputB } from "./module_b.ts";

function outputA() {
console.log("Modül A'nın import.meta.url", import.meta.url);
console.log("Modül A'nın mainModule url'si", Deno.mainModule);
console.log(
"Modül A ana modül mü import.meta.main üzerinden?",
import.meta.main,
);
console.log(
"Çözülmüş spesifikasyon ./module_b.ts için",
import.meta.resolve("./module_b.ts"),
);
}

outputA();
console.log("");
outputB();
ipucu

Eğer module_a.ts /home/alice/deno dizininde bulunuyorsa, deno run --allow-read module_a.ts çıktısı aşağıdaki gibi olacaktır:

Modül A'nın import.meta.url file:///home/alice/deno/module_a.ts
Modül A'nın mainModule url'si file:///home/alice/deno/module_a.ts
Modül A ana modül mü import.meta.main üzerinden? true
Çözülmüş spesifikasyon ./module_b.ts file:///home/alice/deno/module_b.ts

Modül B'nin import.meta.url file:///home/alice/deno/module_b.ts
Modül B'nin mainModule url'si file:///home/alice/deno/module_a.ts
Modül B ana modül mü import.meta.main üzerinden? false