美文网首页
7.13 模块元数据

7.13 模块元数据

作者: 9e8aeff1c70c | 来源:发表于2021-08-10 15:52 被阅读0次

    概念

    • 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
    

    相关文章

      网友评论

          本文标题:7.13 模块元数据

          本文链接:https://www.haomeiwen.com/subject/zhvrdltx.html