Webpack vs Vite
フロントエンドビルドツールの2つの世代: 実績豊富で強力なWebpackと、開発者体験を一変させたVite。プロジェクトに適したビルドツールはどちらか。
JavaScriptリンティングの標準
高速なオールインワンツールチェーン
| カテゴリー | ESLint | Biome |
|---|---|---|
| パフォーマンス | 6/10 | 10/10 |
| 学習のしやすさ | 7/10 | 9/10 |
| エコシステム | 10/10 | 5/10 |
| コミュニティ | 10/10 | 5/10 |
| 求人市場 | 10/10 | 4/10 |
| 将来性 | 7/10 | 9/10 |
// eslint.config.js (ESLint 9 flat config)
import js from '@eslint/js';
import typescript from '@typescript-eslint/eslint-plugin';
import tsParser from '@typescript-eslint/parser';
import reactHooks from 'eslint-plugin-react-hooks';
export default [
js.configs.recommended,
{
files: ['**/*.{ts,tsx}'],
languageOptions: {
parser: tsParser,
parserOptions: { project: './tsconfig.json' }
},
plugins: {
'@typescript-eslint': typescript,
'react-hooks': reactHooks
},
rules: {
'@typescript-eslint/no-explicit-any': 'error',
'@typescript-eslint/no-unused-vars': 'error',
'react-hooks/rules-of-hooks': 'error',
'react-hooks/exhaustive-deps': 'warn'
}
}
];// biome.json — lint + format設定
{
"$schema": "https://biomejs.dev/schemas/1.8.0/schema.json",
"organizeImports": { "enabled": true },
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"correctness": { "noUnusedVariables": "error" },
"suspicious": { "noExplicitAny": "error" },
"style": { "useConst": "warn" }
}
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"javascript": {
"formatter": { "quoteStyle": "single", "trailingCommas": "es5" }
}
}新規プロジェクトにとって、Biomeのゼロコンフィグによる速度優位性は魅力的ですが、独自のESLintルールに依存する大規模なエコシステムにとってはESLintが依然として不可欠です。両者を併用(Biomeでフォーマット、ESLintでリント)する動きも広がっています。
無料相談を受けるBiomeのフォーマッターはprettierと97%互換で、はるかに高速です。PrettierからBiomeへの移行は概ねスムーズで、細かい出力差はbiome format --writeで自動修正されます。