Deno 管理依賴

2020-09-22 17:20 更新

在Deno中,沒有包管理器的概念,因?yàn)橥獠磕K直接導(dǎo)入到本地模塊中。

這就提出了一個問題,即如何在沒有包管理器的情況下管理遠(yuǎn)程依賴關(guān)系。在具有許多依賴性的大型項(xiàng)目中,如果將模塊全部單獨(dú)導(dǎo)入到單個模塊中,則更新模塊將變得很麻煩且耗時(shí)。

在 Deno 中解決此問題的標(biāo)準(zhǔn)做法是創(chuàng)建一個 deps.ts 文件。此文件中引用了所有必需的遠(yuǎn)程依賴關(guān)系,并且重新導(dǎo)出了所需的方法和類。本地模塊從 deps.ts 導(dǎo)入所需方法和類,而不是遠(yuǎn)程依賴。

這樣就可以輕松跨大型代碼庫更新模塊,并解決“程序包管理器問題”(如果它存在的話)。開發(fā)依賴項(xiàng)也可以在單獨(dú)的 dev_deps.ts 文件中進(jìn)行管理。

deps.ts 示例

/**
 * deps.ts 從遠(yuǎn)程的 Ramda 模塊中重新導(dǎo)出所需方法。
 **/
export {
  add,
  multiply,
} from "https://x.nest.land/ramda@0.27.0/source/index.js";

此示例中的功能與 導(dǎo)入和導(dǎo)出模塊 相同。但是在這種情況下,不是直接導(dǎo)入 Ramda 模塊,而是從本地代理 deps.ts 模塊中導(dǎo)入。

命令: deno run dependencies.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));


/**
 * 輸出:
 *
 * 60
 * 82.8
 */
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號