On this page
配置文件
Deno 读取两个配置文件:Node 的 package.json 和其自身的
deno.json。两者都是一等公民且都可选,因此 Deno 可以只使用其中一个,也可以同时使用两个。经验法则:
- 使用
package.json来管理依赖和脚本。Deno 会直接读取它, 因此大多数 Node.js 项目无需任何改动即可运行,而且你根本不需要deno.json。 - 当你想配置 Deno 自身的工具链时,例如格式化器、代码检查器、
TypeScript 编译器或任务,请添加
deno.json。
package.json Jump to heading
Deno 原生支持 package.json。将 Deno 指向一个现有的 Node.js
项目,它会从 package.json 中解析相同的 npm 依赖,并使用
deno task 运行项目的 scripts,无需
deno.json,也无需转换步骤:
deno install # 安装 package.json 中的依赖
deno task <script> # 运行 package.json 中定义的脚本
package.json 可以配置项目的依赖和脚本,但不能配置 Deno 本身。
诸如格式化器、代码检查器、TypeScript 编译器选项以及锁文件行为等 Deno 专属设置,只存在于 deno.json 中。
当两个文件都存在时,Deno 会从两者读取依赖,并从 deno.json 中获取自身配置。
这正是你能够逐步采用 Deno 的原因:在继续于 Node 上运行应用的同时,把 Deno 当作更快的替代型包管理器来使用,用 deno task 运行现有脚本,并在准备好时再添加一个 deno.json 来配置 Deno 的工具链。
从 Node.js 迁移 指南会逐步介绍每一步,而
Deno 中的 Node 兼容性 说明了运行时如何映射 Node 的 API 和模块解析。
deno.json Jump to heading
deno.json 用于配置 Deno 本身:任务、依赖,以及 TypeScript 编译器、代码检查器和格式化器等工具。它是可选的;一个最小文件如下:
{
"tasks": {
"dev": "deno run --watch main.ts"
},
"imports": {
"@std/assert": "jsr:@std/assert@^1"
},
"fmt": {
"lineWidth": 100
}
}
它支持 .json 和
.jsonc
扩展,因此使用 deno.jsonc 时,你可以添加注释和尾随逗号。
Deno 会自动在你当前工作目录或其任意父目录中检测 deno.json 或 deno.jsonc 文件,这就是项目设置能够应用到其下所有文件的原因。使用 --config 标志可以指向其他文件。在单体仓库中,根目录下的 deno.json 可以定义一个
workspace,其成员各自携带自己的 deno.json。
您可以配置的内容 Jump to heading
deno.json 文件用于配置 Deno 的工具链和您的项目。每个字段都在
配置文件(deno.json)参考中有文档说明,包括:
- 依赖项和导入映射
- 任务
- 代码检查 和 格式化
- 锁文件 和 node_modules 目录
- TypeScript 编译器选项
- 不稳定特性标志
include和exclude- 导出
- 权限
- 编译选项
- 最小依赖年龄
请参阅参考文档中的 完整示例 deno.json 文件 以及用于编辑器自动补全的 JSON schema。