TL; DR;
- prettier CLI実行時に指定していないオプションのデフォルトが書き換わっているような事象が発生。
- 原因は.editorconfig。プロジェクト外の.editorconfigの設定がprettier実行時に読み込まれてしまう。
- 勝手にデフォルトが書き換わってるように見えるときはプロジェクト外に.editorconfigが無いかどうかを確認してみること
調査内容
インデントがスペースなファイルに対してprettierを実行するとなぜかタブに置き換わってしまっている事象が発生。
公式ドキュメントを見ても —use-tabs
はデフォルトで false
なのに何故?と思い --loglevel
をdebugにして実行してみるとたしかに useTabs
が true
になっている。
一行目のdebug出力を見ると editorconfig
が true
になっている。
なるほど、デフォルトではeditorconfigの設定も加味されるんだっけ。ただ、現プロジェクトにeditorconfigを入れた記憶はない。
まさかと思って親ディレクトリを見るといました。editorconfig。
しかもきっちりindent_styleがtabになってる。
.editorconfigをどこで入れたか正直記憶にないぐらいだったので、削除して再度実行したらしっかりインデントはスペースになっていた。
.editorconfigを削除しなくても [—no-editorconfig](https://prettier.io/docs/en/cli.html#--no-editorconfig)
でeditorconfigを無効化できそう。
ちなみにこの現象はGitHubにissue化されいる