prettier vs eslint vs stylelint vs tslint
フロントエンドコードの品質管理とフォーマットツールの比較
prettiereslintstylelinttslint類似パッケージ:

フロントエンドコードの品質管理とフォーマットツールの比較

eslinttslint はコードの論理的な誤りを発見するリンターです。prettier はコードの見た目を整えるフォーマッターです。stylelint は CSS コードの品質をチェックします。これらを組み合わせることで、チーム全体でコードの品質とスタイルを統一できます。

npmのダウンロードトレンド

3 年

GitHub Starsランキング

統計詳細

パッケージ
ダウンロード数
Stars
サイズ
Issues
公開日時
ライセンス
prettier108,145,04551,8938.6 MB1,4881ヶ月前MIT
eslint027,2812.91 MB1129日前MIT
stylelint011,469954 kB1254日前MIT
tslint05,906-16年前Apache-2.0

eslint vs prettier vs stylelint vs tslint: コード品質ツールの役割と選び方

フロントエンド開発において、コードの品質を保つことは重要です。eslintprettierstylelinttslint はすべてコードをチェックするツールですが、役割が異なります。これらを正しく理解し、組み合わせることで、バグを減らし、チーム内のコードスタイルを統一できます。

🛠️ 役割の違い — リンター vs フォーマッター

eslint は JavaScript と TypeScript のリンターです。

  • コードの論理的な誤りや、潜在的なバグを見つけます。
  • 変数の未使用や、型に関するミスなどを検知します。
  • ルールをカスタマイズして、プロジェクト固有の規則を設けられます。
// .eslintrc.js の例
module.exports = {
  rules: {
    'no-unused-vars': 'error',
    'eqeqeq': 'error'
  }
};

prettier はコードフォーマッターです。

  • コードの見た目(インデント、改行、クォート)を自動で整えます。
  • 論理的なエラーは検知しません。
  • 設定項目が少なく、議論する時間を減らせます。
// .prettierrc の例
{
  "semi": true,
  "singleQuote": true,
  "tabWidth": 2
}

stylelint は CSS のリンターです。

  • CSS や SCSS、Less の構文エラーやスタイルルールをチェックします。
  • 色コードの形式や、プロパティの順序などを統一できます。
  • JavaScript のツールとは別に、スタイルシート専門の品質管理を行います。
// .stylelintrc.json の例
{
  "rules": {
    "color-no-invalid-hex": true,
    "declaration-block-no-duplicate-properties": true
  }
}

tslint は TypeScript 専用のリンターでしたが、現在は非推奨です。

  • 過去には TypeScript プロジェクトで広く使われていました。
  • 現在は開発が終了しており、新しいプロジェクトでは使用すべきではありません。
  • 既存プロジェクトは eslint に移行する必要があります。
// tslint.json の例(非推奨)
{
  "rules": {
    "quotemark": [true, "single"]
  }
}

⚠️ 重要な注意点 — tslint の非推奨について

tslint は公式に非推奨(deprecated)となっています。

  • Microsoft と tslint メンテナーは、eslint への移行を推奨しています。
  • typescript-eslint を使うことで、eslint で TypeScript を完全にサポートできます。
  • 新しいプロジェクトで tslint を選ぶ理由はありません。既存プロジェクトも移行を計画すべきです。

🤝 組み合わせ方 — eslint と prettier の併用

eslintprettier は競合するのではなく、補完し合います。

  • eslint はコードの「質」を担当します。
  • prettier はコードの「見た目」を担当します。
  • 両方を同時に使う場合、フォーマットに関する eslint ルールをオフにする必要があります。
// .eslintrc.js で prettier と競合するルールをオフ
module.exports = {
  extends: [
    'eslint:recommended',
    'plugin:@typescript-eslint/recommended',
    'prettier' // prettier の設定を適用して競合を解消
  ]
};

📊 機能比較サマリー

機能eslintprettierstylelinttslint
対象JS / TSJS / TS / CSS 等CSS / SCSSTS (非推奨)
主な役割品質チェック自動フォーマット品質チェック品質チェック
設定詳細可能最小限詳細可能詳細可能
状態✅ 推奨✅ 推奨✅ 推奨❌ 非推奨

💡 最終的な推奨事項

eslint は JavaScript と TypeScript の品質管理に必須です。 prettier はフォーマット議論をなくすために導入すべきです。 stylelint は CSS を書くチームなら導入を検討してください。 tslint は絶対に使わないでください。

現代のフロントエンド開発では、eslintprettier を組み合わせるのが標準です。これにより、コードの質を保ちながら、スタイルに関する無駄な議論を減らせます。チームの生産性を高めるために、これらのツールを正しく設定しましょう。

選び方: prettier vs eslint vs stylelint vs tslint

  • prettier:

    コードのフォーマット(インデントやセミコロン)を自動で整えたい場合に選択します。設定項目が少なく、チーム内のスタイル議論を減らすのに最適です。

  • eslint:

    JavaScript や TypeScript の論理エラーやコード品質をチェックしたい場合に選択します。プラグイン生態系が豊富で、プロジェクト固有の規則を細かく設定可能です。

  • stylelint:

    CSS や SCSS の記述ルールを統一したい場合に選択します。スタイルシートの構文エラーやベストプラクティス違反を検知できます。

  • tslint:

    選択しないでください。公式に非推奨であり、メンテナンスも終了しています。既存プロジェクトは eslint に移行すべきです。

prettier のREADME

Prettier Banner

Opinionated Code Formatter

JavaScript · TypeScript · Flow · JSX · JSON
CSS · SCSS · Less
HTML · Vue · Angular
GraphQL · Markdown · YAML
Your favorite language?

CI Status Coverage Status Blazing Fast
npm version weekly downloads from npm code style: prettier Follow Prettier on X

Intro

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.

Input

foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());

Output

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!


Documentation

Install · Options · CLI · API

Playground


Badge

Show the world you're using Prettiercode style: prettier

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

Contributing

See CONTRIBUTING.md.