1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ふしぎなるAdvent Calendar 2024

Day 10

Bun+ReactのプロジェクトにPrettier設定を入れる

Posted at

はじめに

Prettier は、コードフォーマッターとして有名なツールで、コードのスタイルを統一し、読みやすくすることができます。
チームで開発する際は、必ず初期の段階で入れるようにしましょう。

環境

以下で構築した環境を使用しています。 (Bun + React + Vite)

手順

早速、公式サイトの手順に沿って、prettier を導入していきます。

インストール

以下のコマンドを実行します。

bun add --dev --exact prettier

これで Prettier がプロジェクトに追加されます。

基本設定

プロジェクトのルートに .prettierrc.yaml ファイルを作成して、設定を記述します。

trailingComma: 'es5'
tabWidth: 2
semi: false
singleQuote: true

JSON等他の形式も対応していますので、その辺りはお好みで。

各オプションの説明

  • semi: 行末にセミコロンを付けるかどうか
  • singleQuote: シングルクォートを使用するか
  • trailingComma: 配列やオブジェクトの末尾にカンマを付けるか (es5はES5で有効なカンマをつける)
  • tabWidth: インデントのスペース数
  • printWidth: 1行の最大文字数

詳細は公式サイトを参照してください
https://prettier.io/docs/en/options.html

(不要) 除外設定

.prettierignore ファイルを作成ると、フォーマットファイルから除外するファイルを指定できます。
しかし、バージョンコントールのディレクトリ (.gitなど) や node_modules.gitignore に記載されているものはデフォルトで除外されます。
今回は必要なさそうなのでスキップします。

スクリプトの追加

package.json にフォーマット用のスクリプトを追加します。

  "scripts": {
    "dev": "bunx --bun vite",
    "build": "tsc -b && bunx --bun vite build",
    "lint": "eslint .",
+   "format": "prettier --write .",
+   "format-check": "prettier --check .",
    "preview": "bunx --bun vite preview"
  },
}
  • format: プロジェクト全体をフォーマットする
  • format-check: チェックのみを事項する

(不要) ESLint の設定追加

以前は、ESLint 側にPrettierと競合する無効化する設定が必要でしたが、ESLint v8.53.0 からフォーマット関連のルールがdeprecateになり、必要なくなったようです。

フォーマットの実行

以下のコマンドを使用してフォーマットを実行します。

bun run format

無事にフォーマットが実行されました。

$ prettier --write .
.prettierrc.yaml 11ms (unchanged)
eslint.config.js 28ms
index.html 16ms (unchanged)
package.json 1ms
README.md 24ms (unchanged)
src/App.css 19ms (unchanged)
src/App.tsx 39ms
src/index.css 4ms (unchanged)
src/main.tsx 4ms (unchanged)
src/vite-env.d.ts 1ms (unchanged)
tsconfig.app.json 4ms (unchanged)
tsconfig.json 0ms (unchanged)
tsconfig.node.json 1ms (unchanged)
vite.config.ts 1ms (unchanged)

例として、src/App.tsx を見ると、以下のように整形されているのが分かります。

image.png

まとめ

本記事では、プロジェクトで Prettier を導入しました。
この辺りをやるのも久しぶりなので、記事を残しながら実施してみました。

1
0
0

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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?