👻
npm, turborepo, VSCodeのモノレポでbiomeを使えるようにする【備忘録】
概要
今回、フロントエンドの画面を何個か作る時に、画面だけでひとまとまりになっていると
やりやすいだろうなぁ、モノレポやるか、となって turborepo と biome を使おうとした。
その際に結構沼ったので、備忘録として残す。
ついでに、テンプレートリポジトリにして残したので、見たい方はこちらをどうぞ。
手順
手順はこれだけ。
ただし、4 を適当にやると沼るので、ちゃんとやろう。
- turborepo のセットアップ
- eslint, prettier を除去
- biome をルートで設定
- biome の設定ファイルを apps, packages で使いたいところに入れる
1. turborepo のセットアップ
公式通りにインストールする。
名前は PJT 名など適切なものを。
npx create-turbo@latest
2. eslint, prettier を除去
ひたすら eslint, prettier に関する内容を削除する。
VSCode であれば、検索を使うと便利。
package.json
の修正(npm uninstall
でも可)とeslintrc
を消す作業がメイン。
ここでやること
-
apps/docs
から eslint, prettier 関連を消す -
apps/web
から eslint, prettier 関連を消す -
packages/ui
から eslint, prettier 関連を消す - ルートディレクトリの
package.json
を修正
3. biome をルートで設定
PJT のルートに移動して、biome をインストール
npm install --save-dev --save-exact @biomejs/biome
ついでに、設定ファイルを生成しておく
npx @biomejs/biome init
4. biome の設定ファイルを apps, packages で使いたいところに入れる
ここがキモ。
やることは簡単だが、それぞれに設定ファイルを入れるところで、
有効にしたい設定に関して、以下のようにする必要あり。
(root)/apps/web/biome.json
{
"$schema": "https://biomejs.dev/schemas/1.9.3/schema.json",
"extends": ["../../biome.json"],
"linter": {
"include": ["src/**/*.ts", "src/**/*.tsx"]
},
"formatter": {
"include": ["src/**/*.ts", "src/**/*.tsx"]
}
}
以下を参考にやっただけだが、include
の有無だけで
VSCode の拡張が動作しなくなるので、ビビる。
あとは、vscode の設定ファイルいじって、保存時の修正をつけるなりつけないなり。
私はつける派。
(root)/apps/web/.vscode/settings.json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "biomejs.biome",
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports.biome": "explicit"
},
"[javascript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescript]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[typescriptreact]": {
"editor.defaultFormatter": "biomejs.biome"
},
"[json]": {
"editor.defaultFormatter": "biomejs.biome"
}
}
参考文献
Discussion