deno.land / x / manual@v1.28.2 / examples / module_metadata.md
The example below uses two modules to show the difference between
import.meta.url
, import.meta.main
and Deno.mainModule
. In this example,
module_a.ts
is the main module entry point:
/**
* module_b.ts
*/
export function outputB() {
console.log("Module B's import.meta.url", import.meta.url);
console.log("Module B's mainModule url", Deno.mainModule);
console.log(
"Is module B the main module via import.meta.main?",
import.meta.main,
);
}
/**
* module_a.ts
*/
import { outputB } from "./module_b.ts";
function outputA() {
console.log("Module A's import.meta.url", import.meta.url);
console.log("Module A's mainModule url", Deno.mainModule);
console.log(
"Is module A the main module via import.meta.main?",
import.meta.main,
);
console.log("Resolved specifier for ./module_b.ts", import.meta.resolve("./module_b.ts"));
}
outputA();
console.log("");
outputB();
If module_a.ts
is located in /home/alice/deno
then the output of
deno run --allow-read module_a.ts
is:
Module A's import.meta.url file:///home/alice/deno/module_a.ts
Module A's mainModule url file:///home/alice/deno/module_a.ts
Is module A the main module via import.meta.main? true
Resolved specifier for ./module_b.ts file:///home/alice/deno/module_b.ts
Module B's import.meta.url file:///home/alice/deno/module_b.ts
Module B's mainModule url file:///home/alice/deno/module_a.ts
Is module B the main module via import.meta.main? false
Version Info