3

構成ファイルのセットアップ方法と、どの構成/プラグインを使用する必要があるかについて、非常に混乱しています。

Typescript、Jest、および React フックを使用する React プロジェクトがあります。

インストールする必要があることはわかっています:

  • eslint
  • prettiereslint-config-prettiereslint-plugin-prettier
  • eslint-plugin-import

Airbnb の設定に関しては、インストールする必要があるかどうかわかりません:

  • eslint-config-airbnbeslint-plugin-reacteslint-plugin-jsx-a11y または
  • eslint-config-airbnb-base

これらのどちらも Typescript をサポートしているようには見えないため、以下もインストールする必要があるようです。

  • @typescript-eslint/eslint-plugin@typescript-eslint/parser

Jest の場合、以下をインストールする必要があります。

  • eslint-plugin-jest

Reactフックについてはわかりません。ここで追加のものをインストールする必要がありますか、それとも他のパッケージのいずれかにサポートが含まれていますか? インストールのオプションがあることがわかりました:

  • eslint-plugin-react-hooks

それは必要ですか?

ここで、構成ファイルについて、私が関心を持っている領域が 2 つあります:extendsplugins.

これらのパッケージのいくつかは で拡張できるよう/recommendedです。これらのいずれかを使用する必要がありますか? extendsセクションはどうあるべきですか?次のように設定する例を見てきました。

{
  "extends": ["airbnb-base", "plugin:prettier/recommended"]
}

以下を使用する他の例を見てきましたが、

{
  "extends": ["airbnb", "prettier"]
}

そして、使用する別の例:

{
  "extends": [
    "airbnb",
    "plugin:prettier/recommended",
    "prettier/react"
  ]
}

他の Typescript、Jest、React Hooks プラグインはどうですか? たとえば、eslint-plugin-jestextend に追加"plugin:jest/recommended"することを提案します。それは他のものと競合しますか?"plugin:@typescript-eslint/recommended"とを追加することもでき"prettier/@typescript-eslint"ます。それらも含めるべきですか?

このpluginsセクションでは、eslint-plugin-....インストールした各パッケージをリストするだけですか?

以下に例を示します。これがどのように見えるか教えてください。

インストール済みパッケージ

@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint
eslint-config-airbnb
eslint-config-prettier
eslint-plugin-import
eslint-plugin-jest
eslint-plugin-jsx-a11y
eslint-plugin-prettier
eslint-plugin-react
eslint-plugin-react-hooks
prettier

構成ファイル:

{
  "extends": [
    "airbnb",
    "plugin:@typescript-eslint/recommended",
    "plugin:jest/recommended",
    "plugin:prettier/recommended",
    "plugin:react/recommended",
    "prettier",
    "prettier/@typescript-eslint"
  ],
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "@typescript-eslint", 
    "import",
    "jest", 
    "jsx-a11y", 
    "react", 
    "react-hooks"
  ],
}
4

1 に答える 1