在Deno中,沒有包管理器的概念,因為外部模塊直接導入到本地模塊中。
這就提出了一個問題,即如何在沒有包管理器的情況下管理遠程依賴關(guān)系。在具有許多依賴性的大型項目中,如果將模塊全部單獨導入到單個模塊中,則更新模塊將變得很麻煩且耗時。
在 Deno 中解決此問題的標準做法是創(chuàng)建一個 deps.ts
文件。此文件中引用了所有必需的遠程依賴關(guān)系,并且重新導出了所需的方法和類。本地模塊從 deps.ts
導入所需方法和類,而不是遠程依賴。
這樣就可以輕松跨大型代碼庫更新模塊,并解決“程序包管理器問題”(如果它存在的話)。開發(fā)依賴項也可以在單獨的 dev_deps.ts
文件中進行管理。
deps.ts 示例
/**
* deps.ts 從遠程的 Ramda 模塊中重新導出所需方法。
**/
export {
add,
multiply,
} from "https://x.nest.land/ramda@0.27.0/source/index.js";
此示例中的功能與 導入和導出模塊 相同。但是在這種情況下,不是直接導入 Ramda 模塊,而是從本地代理 deps.ts
模塊中導入。
命令: 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
*/
更多建議: