CLI
コマンドラインからPrettierを実行するには、prettier
コマンドを使用します。
prettier [options] [file/dir/glob ...]
ローカルにインストールしたバージョンのPrettierを実行するには、コマンドの前に
npx
またはyarn
(Yarnを使用している場合)を付けます。例:npx prettier --help
、またはyarn prettier --help
。
ファイルをインプレースでフォーマットするには、--write
を使用します。(注意:これによりファイルが上書きされます!)
実際には、このようになります。
prettier . --write
このコマンドは、現在のディレクトリとそのサブディレクトリにあるPrettierでサポートされているすべてのファイルをフォーマットします。
prettier --write .
がプロジェクトで必要なものだけをフォーマットするように常に確認することをお勧めします。フォーマットすべきでないものを無視するには、.prettierignore
ファイルを使用してください。
より複雑な例
prettier docs package.json "{app,__{tests,mocks}__}/**/*.js" --write --single-quote --trailing-comma all
グロブの周りの引用符を忘れないでください!引用符により、Prettier CLIがシェルではなくグロブを展開するようになります。これは、クロスプラットフォームでの使用にとって重要です。
--single-quote
や--trailing-comma
のようなフォーマットオプションをCLIフラグとして渡す代わりに、設定ファイルを使用することをお勧めします。このようにすると、Prettier CLI、エディター統合、その他のツールがすべて、どのオプションを使用しているかを知ることができます。
ファイルパターン
パス/パターンのリストが与えられた場合、Prettier CLIはまずその中のすべてのエントリをリテラルパスとして扱います。
パスが既存のファイルを指している場合、Prettier CLIはそのファイルを処理し、パスをグロブパターンとして解決しません。
パスが既存のディレクトリを指している場合、Prettier CLIはそのディレクトリ内でサポートされているファイルを再帰的に検索します。この解決プロセスは、ファイル拡張子と、Prettierとそのプラグインがサポートされている言語に関連付ける既知のファイル名に基づいています。
それ以外の場合、エントリは
fast-glob
モジュールのグロブ構文を使用してグロブパターンとして解決されます。
Prettier CLIは、node_modules
ディレクトリにあるファイルを無視します。この動作を無効にするには、--with-node-modules
フラグを使用します。
Prettier CLIは、引数を展開する際にシンボリックリンクをたどりません。
グロブ内の特殊文字をエスケープするには、次の2つのエスケープ構文のいずれかを使用できます。 prettier "\[my-dir]/*.js"
または prettier "[[]my-dir]/*.js"
。どちらも[my-dir]
という名前のディレクトリ内のすべてのJSファイルに一致しますが、前者の構文はバックスラッシュがパス区切り文字として扱われるWindowsでは機能しないため、後者の構文が推奨されます。
--check
ファイルがフォーマットされているかどうかを確認したい場合は、--check
フラグ(または-c
)を指定してPrettierを実行できます。これにより、フォーマットされていないファイルがある場合は、人間が理解しやすいメッセージと、フォーマットされていないファイルのリストが出力されます。
prettier . --check
すべてのファイルがフォーマットされている場合のコンソール出力
Checking formatting...
All matched files use Prettier code style!
一部のファイルで再フォーマットが必要な場合のコンソール出力
Checking formatting...
[warn] src/fileA.js
[warn] src/fileB.js
[warn] Code style issues found in 2 files. Run Prettier with --write to fix.
コマンドは、2番目のケースでは終了コード1
を返します。これは、CIパイプライン内で役立ちます。人間が理解しやすいステータスメッセージは、プロジェクトの貢献者が起こりうる問題に対応するのに役立ちます。prettier --check
がフォーマットされていないファイルを見つける回数を最小限に抑えるには、リポジトリでコミット前フックを設定することに関心があるかもしれません。この方法を適用すると、コードフォーマットの問題が原因でCIが失敗する回数を最小限に抑えられます。
フォーマットされていないファイルのリストを別のコマンドにパイプする必要がある場合は、--check
の代わりに--list-different
フラグを使用できます。
終了コード
コード | 情報 |
---|---|
0 | すべてが適切にフォーマットされています |
1 | 適切にフォーマットされていないものがあります |
2 | Prettierに問題があります |
--debug-check
Prettierがコードの正確性を変更することを心配している場合は、コマンドに--debug-check
を追加します。これにより、コードの正確性が変更された可能性があることをPrettierが検出した場合、エラーメッセージが出力されます。--write
は--debug-check
と一緒に使用できないことに注意してください。
--find-config-path
および --config
prettier
を使用して個々のファイルを繰り返しフォーマットする場合、Prettierが設定ファイルを検索しようとすると、わずかなパフォーマンスコストが発生します。これをスキップするには、Prettierに設定ファイルを一度検索させ、後で再利用することができます。
$ prettier --find-config-path path/to/file.js
path/to/.prettierrc
これにより、設定ファイルへのパスが提供され、それを--config
に渡すことができます。
prettier path/to/file.js --write --config path/to/.prettierrc
設定ファイルが、config/
ディレクトリのようにPrettierが見つけられない場所にある場合にも、--config
を使用できます。
設定ファイルがない場合、または存在する場合にそれを無視したい場合は、代わりに--no-config
を渡すことができます。
--ignore-path
無視するファイルを記述するパターンを含むファイルへのパス。デフォルトでは、Prettierは./.gitignore
と./.prettierignore
を検索します。
複数の値が受け入れられます。
--list-different
もう1つの便利なフラグは--list-different
(または-l
)です。これは、Prettierフォーマットと異なるファイルのファイル名を出力します。相違がある場合、スクリプトはエラーになり、CIシナリオで役立ちます。
prettier . --single-quote --list-different
--check
フラグを使用することもできます。これは、--list-different
と同じように機能しますが、人間が理解しやすい概要メッセージをstdoutにも出力します。
--no-config
設定ファイルを検索しません。デフォルト設定が使用されます。
--config-precedence
CLIオプションと組み合わせて設定ファイルをどのように評価するかを定義します。
cli-override(デフォルト)
CLIオプションは設定ファイルよりも優先されます
file-override
設定ファイルはCLIオプションよりも優先されます
prefer-file
設定ファイルが見つかった場合はそれを評価し、他のCLIオプションは無視します。設定ファイルが見つからない場合は、CLIオプションが通常どおり評価されます。
このオプションは、ユーザーがデフォルト設定を定義しているが、プロジェクト固有の設定を尊重したいエディター統合のサポートを追加します。
--no-editorconfig
設定の解析時に.editorconfig
を考慮しないでください。詳細については、prettier.resolveConfig
ドキュメントを参照してください。
--with-node-modules
Prettier CLIは、node_modules
ディレクトリにあるファイルを無視します。この動作を無効にするには、--with-node-modules
フラグを使用します。
--write
これにより、処理されたすべてのファイルがその場で書き換えられます。これは、eslint --fix
のワークフローに相当します。-w
エイリアスを使用することもできます。
--log-level
CLIのログレベルを変更します。有効なオプションは次のとおりです。
error
warn
log
(デフォルト)debug
silent
--stdin-filepath
Prettier CLIがstdinとして扱うファイルのパス。例:
abc.css
.name {
display: none;
}
shell
$ cat abc.css | prettier --stdin-filepath abc.css
.name {
display: none;
}
--ignore-unknown
--ignore-unknown
(または -u
) を使用すると、Prettierはパターンに一致する不明なファイルを無視します。
prettier "**/*" --write --ignore-unknown
--no-error-on-unmatched-pattern
パターンが一致しない場合にエラーが発生しないようにします。
--cache
このオプションが有効になっている場合、以下の値がキャッシュキーとして使用され、それらのいずれかが変更された場合にのみファイルがフォーマットされます。
- Prettierのバージョン
- オプション
- Node.jsのバージョン
- (
--cache-strategy
がmetadata
の場合) タイムスタンプなどのファイルメタデータ - (
--cache-strategy
がcontent
の場合) ファイルの内容
prettier . --write --cache
--cache
なしで Prettier を実行すると、キャッシュが削除されます。
また、キャッシュファイルは ./node_modules/.cache/prettier/.prettier-cache
に保存されるため、rm ./node_modules/.cache/prettier/.prettier-cache
を使用して手動で削除できます。
プラグインのバージョンと実装はキャッシュキーとして使用されません。プラグインを更新するときは、キャッシュを削除することをお勧めします。
--cache-location
--cache
フラグで使用されるキャッシュファイルの場所へのパス。--cache-location
を明示的に指定しない場合、Prettier は ./node_modules/.cache/prettier/.prettier-cache
にキャッシュファイルを保存します。
ファイルパスが渡された場合、そのファイルがキャッシュファイルとして使用されます。
prettier . --write --cache --cache-location=path/to/cache-file
--cache-strategy
変更されたファイルを検出するためにキャッシュが使用する戦略。metadata
または content
のいずれかです。
一般的に、metadata
の方が高速です。ただし、content
はファイルの内容を変更せずにタイムスタンプを更新する場合に役立ちます。これは、git clone
などの git 操作中に発生する可能性があります。これは、ファイルの変更時間を追跡しないためです。
戦略が指定されていない場合は、content
が使用されます。
prettier . --write --cache --cache-strategy metadata