Workspaces 与 Monorepo

在单个 deno.json 中组织成员、共享依赖、任务与发布边界

最小结构

{
  "workspace": ["./apps/api", "./packages/core"],
  "tasks": {
    "check": "deno task --recursive check"
  }
}

成员可以拥有自己的 deno.json 与任务。工作区让成员共享锁文件和根级配置,同时保留包边界。

repo/
├── deno.json
├── deno.lock
├── apps/api/deno.json
└── packages/core/deno.json

设计原则

  • 根任务只做编排,成员任务负责本包验证。
  • 内部包通过 workspace 解析,不用发布版本绕一圈。
  • 公开包明确 exports、许可证和发布文件。
  • 不在根配置里放所有成员都不需要的宽权限。

验证

deno task --recursive check
deno test

从 workspace 根运行 deno test 会发现成员测试;deno task --recursive 用于在成员中执行同名 task。过滤参数与 npm workspace 混用行为会随版本演进,复杂任务图先运行 deno help task 并核对当前官方文档。

官方参考:Workspaces

输入关键词搜索全部文档。