Workspaces
对于包含多个相互依赖包的大型项目,Deno 提供了 Workspaces,统一管理依赖与任务。
定义工作区
在根 deno.json 中用 workspace 字段声明成员目录:
deno.json
{
"workspace": ["./apps/web", "./packages/core", "./packages/cli"]
}成员之间互相引用
工作区成员可通过包名直接相互导入,Deno 会自动解析到本地源码:
ts
// apps/web/main.ts
import { run } from "@my/core";
run();packages/core/deno.json
{
"name": "@my/core",
"exports": "./mod.ts"
}统一安装与运行
在根目录执行一次安装即可为所有成员解析依赖:
sh
deno install # 解析全部成员的依赖
cd apps/web && deno task dev与 npm workspaces 互通
Deno 工作区可与现有的
package.json workspaces 协同工作,方便在保留既有工具链的同时逐步迁移。