eslint と tslint はコードの論理的な誤りを発見するリンターです。prettier はコードの見た目を整えるフォーマッターです。stylelint は CSS コードの品質をチェックします。これらを組み合わせることで、チーム全体でコードの品質とスタイルを統一できます。
フロントエンド開発において、コードの品質を保つことは重要です。eslint、prettier、stylelint、tslint はすべてコードをチェックするツールですが、役割が異なります。これらを正しく理解し、組み合わせることで、バグを減らし、チーム内のコードスタイルを統一できます。
eslint は JavaScript と TypeScript のリンターです。
// .eslintrc.js の例
module.exports = {
rules: {
'no-unused-vars': 'error',
'eqeqeq': 'error'
}
};
prettier はコードフォーマッターです。
// .prettierrc の例
{
"semi": true,
"singleQuote": true,
"tabWidth": 2
}
stylelint は CSS のリンターです。
// .stylelintrc.json の例
{
"rules": {
"color-no-invalid-hex": true,
"declaration-block-no-duplicate-properties": true
}
}
tslint は TypeScript 専用のリンターでしたが、現在は非推奨です。
eslint に移行する必要があります。// tslint.json の例(非推奨)
{
"rules": {
"quotemark": [true, "single"]
}
}
tslint は公式に非推奨(deprecated)となっています。
tslint メンテナーは、eslint への移行を推奨しています。typescript-eslint を使うことで、eslint で TypeScript を完全にサポートできます。tslint を選ぶ理由はありません。既存プロジェクトも移行を計画すべきです。eslint と prettier は競合するのではなく、補完し合います。
eslint はコードの「質」を担当します。prettier はコードの「見た目」を担当します。eslint ルールをオフにする必要があります。// .eslintrc.js で prettier と競合するルールをオフ
module.exports = {
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'prettier' // prettier の設定を適用して競合を解消
]
};
| 機能 | eslint | prettier | stylelint | tslint |
|---|---|---|---|---|
| 対象 | JS / TS | JS / TS / CSS 等 | CSS / SCSS | TS (非推奨) |
| 主な役割 | 品質チェック | 自動フォーマット | 品質チェック | 品質チェック |
| 設定 | 詳細可能 | 最小限 | 詳細可能 | 詳細可能 |
| 状態 | ✅ 推奨 | ✅ 推奨 | ✅ 推奨 | ❌ 非推奨 |
eslint は JavaScript と TypeScript の品質管理に必須です。
prettier はフォーマット議論をなくすために導入すべきです。
stylelint は CSS を書くチームなら導入を検討してください。
tslint は絶対に使わないでください。
現代のフロントエンド開発では、eslint と prettier を組み合わせるのが標準です。これにより、コードの質を保ちながら、スタイルに関する無駄な議論を減らせます。チームの生産性を高めるために、これらのツールを正しく設定しましょう。
コードのフォーマット(インデントやセミコロン)を自動で整えたい場合に選択します。設定項目が少なく、チーム内のスタイル議論を減らすのに最適です。
JavaScript や TypeScript の論理エラーやコード品質をチェックしたい場合に選択します。プラグイン生態系が豊富で、プロジェクト固有の規則を細かく設定可能です。
CSS や SCSS の記述ルールを統一したい場合に選択します。スタイルシートの構文エラーやベストプラクティス違反を検知できます。
選択しないでください。公式に非推奨であり、メンテナンスも終了しています。既存プロジェクトは eslint に移行すべきです。
JavaScript
· TypeScript
· Flow
· JSX
· JSON
CSS
· SCSS
· Less
HTML
· Vue
· Angular
GraphQL
· Markdown
· YAML
Your favorite language?
Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());
foo(
reallyLongArg(),
omgSoManyParameters(),
IShouldRefactorThis(),
isThereSeriouslyAnotherOne(),
);
Prettier can be run in your editor on-save, in a pre-commit hook, or in CI environments to ensure your codebase has a consistent style without devs ever having to post a nit-picky comment on a code review ever again!
Show the world you're using Prettier →
[](https://github.com/prettier/prettier)
See CONTRIBUTING.md.