1
1

More than 3 years have passed since last update.

Prettier まとめ

Last updated at Posted at 2021-06-24

概要

  • prettierというコードフォーマッターがあり、何気なく使用している
  • ESLintでもコードのフォーマットができるらしいが、併用する理由が気になったので調べたことをまとめる

参考資料:Prettier 入門 ~ESLintとの違いを理解して併用する~

prettierとは

  • JavaScript,TypeScript,JSX,JSON,HTML,CSS,YAML,Markdown,etc...様々な形式のフォーマットに対応している

(そもそも)なぜコードフォーマッターが必要なのか

  • 同じチームの中でスタイルがバラバラでは困るため
  • (フォーマッターがなければ)各自が独自の整形ルールを適用していると、更新するたびに余計な差分が発生し、本来の修正箇所がぼける
  • ソースが整形されている前提で話せるので、レビューの際にはより本質的な内容にフォーカスできる
  • 設定した後は特に何も考えていなくてもツールが自動で整形してくれる(品質が一定に保たれる)

prettierの導入

1. 必要なプラグインのインストール

必要なプラグイン

  • prettier(prettier本体)
  • eslint-config-prettier(Prettierと競合するeslintのルールを無効にする)
yarn add -D prettier eslint-config-prettier
typesync #typescriptテンプレートの場合に必要なコマンド
yarn

2. .eslintrc.jsonに設定を追加

  • extendsに追加したパッケージのルールが適用されるように設定を追加する
  • eslintの設定に上書きされないように一番下に追加すること
.eslintrc.json
extends:[

  ...
  'prettier',
],...

3. デフォルト設定を変更したい場合に追加するファイルを作成する

  • これだけでもprettierのフォーマットはできる
  • デフォルトルールを変更したい場合は.prettierrcを作成してルールを設定する
  • デフォルトルールはこちら
touch .prettierrc
singleQuote: true
trailingcomma: "all"

4. npm-scriptsにエイリアスを追加する

  • eslint --fixとprettierのフォーマットが一緒に実行されるようにする
package.json
"scripts":{
  "fix": "npm run -s format && npm run -s lint:fix"
  "format": "prettier --write --loglevel=warn 'src/**/*.{js,jsx,ts,tsx,gql,graphql,json}'",
  "lint:conflict": "eslint --print-config .eslintrc.js | eslint-config-prettier-check",
{

コードエディターにVSCodeを使用している場合

  • VSCodeと連携させることでさらなるDX向上することができる

1. VSCode拡張をインストール

2. 設定を追加する

  • プロジェクトで使用するsettings.jsonに以下を追記する
  • ここで設定した形式について自動フォーマットを走るようにする
settings.json
“editor.defaultFormatter": "esbenp.prettier-vscode",
  "[graphql]": {
    "editor.formatOnSave": true
  },
  "[javascript]": {
    "editor.formatOnSave": true
  },
  "[javascriptreact]": {
    "editor.formatOnSave": true
  },
  "[json]": {
    "editor.formatOnSave": true
  },
  "[typescript]": {
    "editor.formatOnSave": true
  },
  "[typescriptreact]": {
    "editor.formatOnSave": true
  },

まとめ

  • ESLintでは静的解析、Prettierではフォーマッティングを行わせる
  • Prettierを使うことで個人だけでなく、チームで開発するときも利点が多くあることが分かった
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1