美文网首页
7.3 管理依赖

7.3 管理依赖

作者: 9e8aeff1c70c | 来源:发表于2021-06-14 18:55 被阅读0次

    概念

    • Deno使用URL进行依赖管理。
    • 一种约定是将所有这些依赖的URL放入本地的dess.ts文件中。然后将功能导出到dess.ts文件中,供本地模块使用。
    • 延续这一约定,仅dev依赖项可以保存在一个新的dev_dess.ts文件中。
    • 另请参阅链接到外部code

    概览

    在Deno中没有包管理器的概念,因为外部模块直接导入到本地模块中。这就提出了在没有包管理器的情况下如何管理远程依赖关系的问题。在具有许多依赖项的大型项目中,如果将模块全部单独导入到各个模块中,则更新模块将变得既麻烦又耗时。

    在Deno中解决此问题的标准做法是创建一个新的dess.ts文件。此文件中引用了所有必需的远程依赖项,并重新导出了必需的方法和类。然后,依赖的本地模块会引用文件dess.ts,而不是远程依赖项。例如,如果现在在多个文件中使用一个远程依赖项,则升级到此远程依赖项的新版本要简单得多,因为这只需在dess.ts中完成。

    由于所有依赖项都集中在dess.ts中,管理这些依赖项变得更加容易。开发依赖关系也可以在单独的dev_dess.ts文件中进行管理,从而可以将仅开发依赖关系和生产依赖关系完全分开。

    例子

    /**
     * deps.ts
     *
     * This module re-exports the required methods from the dependant remote Ramda module.
     **/
    export {
      add,
      multiply,
    } from "https://x.nest.land/ramda@0.27.0/source/index.js";
    

    在此示例中,创建的功能与在本地和远程导入examples.]中创建的功能相同。但在本例中,不是直接引用Ramda模块,而是由代理使用本地的dess.ts模块引用它。

    Command: deno run example.ts

    /**
     * example.ts
     */
    
    import { add, multiply } from "./deps.ts";
    
    function totalCost(outbound: number, inbound: number, tax: number): number {
      return multiply(add(outbound, inbound), tax);
    }
    
    console.log(totalCost(19, 31, 1.2));
    console.log(totalCost(45, 27, 1.15));
    
    /**
     * Output
     *
     * 60
     * 82.8
     */
    

    相关文章

      网友评论

          本文标题:7.3 管理依赖

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