Spec-Zone.ru › Deno 2

deno fmt

Deno ships with a built-in code formatter based on dprint that auto-formats your code to a consistent style. For a broader overview, see Linting and Formatting.

Basic usage

Format all supported files in the current directory:

›_
deno fmt

Format specific files or directories:

›_
deno fmt main.ts src/

Watch mode

Automatically re-format files when they change:

›_
deno fmt --watch

Check formatting in CI

Use --check to verify files are formatted without modifying them. The command exits with a non-zero status code if any files are unformatted:

›_
deno fmt --check

Add --fail-fast to stop on the first unformatted file instead of reporting all of them, which is useful in large codebases:

›_
deno fmt --check --fail-fast

Formatting stdin

Format code piped through stdin — useful for editor integrations:

›_
cat main.ts | deno fmt -

Configuring the formatter

Customize formatting options in your deno.json:

deno.json
{
  "fmt": {
    "useTabs": false,
    "lineWidth": 80,
    "indentWidth": 2,
    "semiColons": true,
    "singleQuote": false,
    "proseWrap": "preserve"
  }
}

See the Configuration page for all available options.

Inheriting settings from .editorconfig

deno fmt also reads .editorconfig files and uses them to fill in any formatting option you have not set elsewhere. The precedence, from highest to lowest, is:

  1. CLI flags (--indent-width, --use-tabs, and so on)
  2. The fmt block in deno.json
  3. .editorconfig
  4. Built-in defaults

So .editorconfig only supplies values you have not already configured through a flag or deno.json. Properties such as indent_style, indent_size, and max_line_length map onto the corresponding deno fmt options.

Including and excluding files

Specify which files to format in deno.json:

deno.json
{
  "fmt": {
    "include": ["src/"],
    "exclude": ["src/testdata/", "src/generated/**/*.ts"]
  }
}

You can also exclude files from the command line:

›_
deno fmt --ignore=dist/,build/

Supported file types

File Type Extension Notes
JavaScript .js, .cjs, .mjs
TypeScript .ts, .mts, .cts
JSX .jsx
TSX .tsx
Markdown .md, .mkd, .mkdn, .mdwn, .mdown, .markdown
JSON .json
JSONC .jsonc
CSS .css
HTML .html
XML .xml
SVG .svg
Nunjucks .njk
Vento .vto
YAML .yml, .yaml
SCSS .scss
LESS .less
Jupyter Notebook .ipynb
Astro .astro Requires --unstable-component flag or "unstable": ["fmt-component"] config option.
Svelte .svelte Requires --unstable-component flag or "unstable": ["fmt-component"] config option.
Vue .vue Requires --unstable-component flag or "unstable": ["fmt-component"] config option.
SQL .sql Requires --unstable-sql flag or "unstable": ["fmt-sql"] config option.
Note

deno fmt can format code snippets in Markdown files. Snippets must be enclosed in triple backticks and have a language attribute.

The markup formatters (HTML, XML, SVG, and the --unstable-component formats) and the style formatters (CSS, SCSS, and Less) were rebuilt to only adjust whitespace. They never reorder or rewrite tokens, and they pass unknown syntax (vendor extensions, future at-rules, template expressions, even broken markup) through unchanged instead of erroring, so formatting is more robust on real-world files.

Ignoring code

JavaScript / TypeScript / JSONC

Ignore formatting code by preceding it with a // deno-fmt-ignore comment:

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

Or ignore an entire file by adding a // deno-fmt-ignore-file comment at the top of the file.

Markdown / HTML / CSS

Ignore formatting next item by preceding it with <!--- deno-fmt-ignore --> comment:

HTML
<html>
  <body>
    <p>
      Hello there
      <!-- deno-fmt-ignore -->
    </p>
  </body>
</html>

To ignore a section of code, surround the code with <!-- deno-fmt-ignore-start --> and <!-- deno-fmt-ignore-end --> comments.

Or ignore an entire file by adding a <!-- deno-fmt-ignore-file --> comment at the top of the file.

YAML

Ignore formatting next item by preceding it with # deno-fmt-ignore comment:

HTML
# deno-fmt-ignore aaaaaa: bbbbbbb
Command line usage:
deno fmt [OPTIONS] [files]...

Auto-format various file types.

deno fmt myfile1.ts myfile2.ts

Supported file types are:

JavaScript, TypeScript, Markdown, JSON(C) and Jupyter Notebooks

Supported file types which are behind corresponding unstable flags (see formatting options):

HTML, CSS, SCSS, LESS, YAML, Svelte, Vue, Astro and Angular

Format stdin and write to stdout:

cat file.ts | deno fmt -

Check if the files are formatted:

deno fmt --check

Ignore formatting code by preceding it with an ignore comment:

// deno-fmt-ignore

Ignore formatting a file by adding an ignore comment at the top of the file:

// deno-fmt-ignore-file

Options

--config, -c<FILE>

Configure different aspects of deno including TypeScript, linting, and code formatting. Typically the configuration file will be called deno.json or deno.jsonc and automatically detected; in that case this flag is not necessary.

--no-config

Disable automatic loading of the configuration file.

--permit-no-files

Don't return an error code if no files were found.

Formatting options

--check

Check if the source files are formatted.

--ext<ext>

Set content type of the supplied file.

--fail-fast

Stop checking files on first format error.

--ignore<ignore>

Ignore formatting particular source files.

--indent-width<indent-width>

Define indentation width [default: 2]

--line-width<line-width>

Define maximum line width [default: 80]

--no-editorconfig

Don't read .editorconfig files to infer formatting options [default: false]

--no-semicolons<no-semicolons>optional

Don't use semicolons except where necessary [default: false]

--prose-wrap<prose-wrap>

Define how prose should be wrapped [default: always]

--single-quote<single-quote>optional

Use single quotes [default: false]

--unstable-component

Enable formatting Svelte, Vue, Astro and Angular files.

--unstable-sql

Enable formatting SQL files.

--use-tabs<use-tabs>optional

Use tabs instead of spaces for indentation [default: false]

File watching options

--no-clear-screen

Do not clear terminal screen when under watch mode.

--watch<FILES>optional

Watch for file changes and restart process automatically. Local files from entry point module graph are watched by default. Additional paths might be watched by passing them as arguments to this flag.

--watch-exclude<FILES>optional

Exclude provided files/patterns from watch mode.

Last updated on June 25, 2026

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/runtime/reference/cli/fmt

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API