メインコンテンツまでスキップ

Prettier

PrettierはJavaScriptやTypeScriptなど、様々な言語をサポートするコードフォーマッタです。

Prettierの実行方法

CLI

後述するESLintとの連携により、ESLintの実行時にPrettierが実行されます。 ESLintの実行方法は、ESLint - ESLintの実行方法 - CLIを参照してください。

エディタ、IDE

エディタやIDEにプラグインなどを設定することで、コーディング中に自動でフォーマットしてくれます。

Visual Studio CodeでPrettierを有効にする方法については、Visual Studio Code - Lint、フォーマッタを参照してください。

その他のエディタやIDEについては、Prettierの公式ページにあるEditor Integrationを参照してください。

ESLintとの連携

eslint-plugin-prettierを導入して、ESLintの実行時にPrettierを実行します。 Prettierのルールに準拠していないコードは、ESLintの警告として表示されるようになります。

また、Prettierのいくつかのルールは、ESLintのルールと競合する場合があります。

競合を解決するために、eslint-config-prettierを導入します。eslint-config-prettierは、Prettierと競合するESLintのルールを無効化するためのESLintプラグインです。

注記

eslint-plugin-prettiereslint-config-prettierの設定は、eslint-config-universeuniverse/nativeで実施されます。

このアプリでは、universe/nativeextendsしているため、eslint-plugin-prettiereslint-config-prettierの設定を個別に記載する必要はありません。

EditorConfigとの連携

Prettierのいくつかのルールは、EditorConfigのルールと同じものがあります。

同じルールに対して、PrettierとEditorConfigの両方に設定をした場合はPrettierの設定が優先されます。 EditorConfigにしか設定をしていない場合は、EditorConfigの設定をPrettierが使用します。

適用しているルール一覧

このアプリでは、Prettierのルールを.prettierrc.jsに定義しています。

適用している全てのルールは以下のとおりです。

オプション設定値デフォルト値からの変更
Print WidthEditorConfigmax_line_length)の設定値デフォルトは80です。

このアプリでは、120に変更しています。
Tab WidthEditorConfigindent_size)の設定値-
TabsEditorConfigindent_style)の設定値-
Semicolonstrue-
Quotestrueデフォルトはfalseです。

このアプリではダブルクオートではなく、シングルクオートに統一します。
Quote Propsas-needed-
JSX Quotesfalse-
Trailing Commasall-
Bracket Spacingfalseデフォルトはtrueです。

このアプリでは、import {React} from 'React'のように、{}の間にスペースを含まないようにします。
Bracket Linetrueデフォルトはfalseです。

JSXのタグが複数行になったときに、最後の>の前で改行しないようにします。
[Deprecated] JSX Bracketstrueデフォルトはfalseです。

IntelliJ IDEAのPrettierプラグインなど、Bracket Lineがまだサポートされていないものがあるので設定しています。
Arrow Function Parenthesesavoidデフォルトはalwaysです。

アロー関数の引数に不要なカッコを付けないようにします。
RangerangeStart: 0
rangeEnd: Infinity
-
ParserNone-
File PathNone-
Require Pragmafalse-
Insert Pragmafalse-
Prose Wrappreserve-
HTML Whitespace Sensitivitycss-
Vue files script and style tags indentationfalse-
End of LineEditorConfigend_of_line)の設定値-
Embedded Language Formattingauto-
Single Attribute Per Linefalse-