概念
- import.meta可以提供有关模块上下文的信息。
- 布尔值import.meta.main将告诉您当前模块是否是程序入口点。
- 字符串import.meta.url将提供当前模块的URL。
- 字符串Deno.mainModule将给出主模块入口点的URL,即由Deno运行时调用的模块。
例子
下面的示例使用两个模块来显示import.meta.url、import.meta.main和Deno.mainModule之间的区别。在本例中,module_a.ts是主模块入口点:
/**
* 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,
);
}
outputA();
console.log("");
outputB();
如果module_a.ts位于/home/alice/deno中,则deno run--allow-read module_a.ts的输出为:
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
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
网友评论