本页内容

管理依赖项

概念 跳转到标题

  • Deno 使用 URL 进行依赖管理。
  • 一种约定将所有这些依赖 URL 放置到本地 deps.ts 文件中。然后将功能从 deps.ts 导出供本地模块使用。
  • 继续这种约定,开发时仅使用的依赖项可以保存在 dev_deps.ts 文件中。
  • 另请参阅 模块

概述 跳转到标题

在 Deno 中,没有包管理器的概念,因为外部模块直接导入到本地模块中。这就引出了一个问题:如何在没有包管理器的情况下管理远程依赖项?在具有许多依赖项的大型项目中,如果所有依赖项都单独导入到不同的模块中,更新模块将变得繁琐且耗时。

在 Deno 中解决此问题的标准做法是创建一个 deps.ts 文件。所有必需的远程依赖项都在此文件中引用,并且所需的方法和类被重新导出。依赖的本地模块然后引用 deps.ts 而不是远程依赖项。现在,如果一个远程依赖项在多个文件中使用,升级它就变得简单得多,因为所有这些都可以通过 deps.ts 进行管理。

开发依赖项也可以在单独的 dev_deps.ts 文件中管理,从而允许开发和生产依赖项之间进行清晰的区分。

示例 跳转到标题

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

此示例的功能与 本地和远程导入示例 相同。但是,在本例中,Ramda 模块不是直接引用,而是通过使用本地 deps.ts 模块作为代理来引用。

命令: 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
 */