跳到主要内容

代码格式化

Deno 集成了一个内置的代码格式化工具,可以自动格式化以下文件:

文件类型扩展名
JavaScript.js
TypeScript.ts
JSX.jsx
TSX.tsx
Markdown.md, .markdown
JSON.json
JSONC.jsonc

此外,deno fmt 可以格式化 Markdown 文件中的代码片段。代码片段必须用三个反引号括起,并带有语言属性。

# 格式化当前目录和子目录中的所有支持的文件
deno fmt
# 格式化特定文件
deno fmt myfile1.ts myfile2.ts
# 格式化指定目录和子目录中的所有支持的文件
deno fmt src/
# 检查当前目录和子目录中的所有支持的文件是否已格式化
deno fmt --check
# 格式化标准输入并写入标准输出
cat file.ts | deno fmt -

忽略代码

在 TS/JS/JSONC 中,通过在代码之前添加 // deno-fmt-ignore 注释来忽略格式化代码:

// deno-fmt-ignore
export const identity = [
1, 0, 0,
0, 1, 0,
0, 0, 1,
];

或者通过在文件顶部添加 // deno-fmt-ignore-file 注释来忽略整个文件。

在 Markdown 中,您可以使用 <!-- deno-fmt-ignore --> 注释来忽略整个文件,或者使用 <!-- deno-fmt-ignore-file --> 注释来忽略整个文件。要忽略 Markdown 的某个部分,可以使用 <!-- deno-fmt-ignore-start --><!-- deno-fmt-ignore-end --> 注释来围绕代码。

配置

ℹ️ 建议使用默认选项。

从 Deno v1.14 开始,可以使用配置文件或遵循 CLI 标志自定义格式化器:

  • --use-tabs - 是否使用制表符。默认为 false(使用空格)。

  • --line-width - 打印机将尝试保持在其下的行宽度。请注意,在某些情况下,打印机可能会超过此宽度。默认为 80。

  • --indent-width - 缩进的字符数。默认为 2。

  • --no-semicolons - 除了必要的情况外,不使用分号。

  • --single-quote - 是否使用单引号。默认为 false(使用双引号)。

  • --prose-wrap={always,never,preserve} - 定义在 Markdown 文件中如何包装文本。默认为 "always"。

注意:在 Deno 版本 < 1.31 中,您将不得不在这些标志前加上 options- 前缀(例如 --options-use-tabs)。