delhi09の勉強日記

技術トピック専用のブログです。自分用のメモ書きの投稿が多いです。あくまで「勉強日記」なので記事の内容は鵜呑みにしないでください。

【Reactの勉強】環境構築(ESLintの設定)

概要

前回に引き続き、環境構築を行う。
今回はESLintの設定を行う。

ESLintは現時点(2021年1月)における、JS界のデファクトスタンダードのLinterのようである。

eslint.org

適宜、以下の本を参考にさせて頂きながら進める。(以下、『りあクト!』)

oukayuka.booth.pm

バージョン

「Reactの勉強」で使用している主なソフトウェアのバージョンは以下の通り。

  • node: 15.5.0
  • react-create-app: 4.0.1
  • react: 17.0.1
  • react-dom: 17.0.1
  • typescript: 4.1.3
  • eslint: 7.17.0
  • prettier: 2.2.1

インストールされていることの確認

『りあクト!』によると、ESLintはcreate-react-appコマンド実行時にインストールされるreact-scriptsモジュールの中に含まれているとのことなので、インストール済みであることを確認する。

$ npm ls eslint
react_tutorial_nihon_u_1@0.1.0 /path/to/react_tutorial_nihon_u_1
└─┬ react-scripts@4.0.1
  ├─┬ @typescript-eslint/eslint-plugin@4.11.1
  │ ├─┬ @typescript-eslint/experimental-utils@4.11.1
  │ │ └── eslint@7.17.0 deduped
  │ └── eslint@7.17.0 deduped
  ├─┬ @typescript-eslint/parser@4.11.1
  │ └── eslint@7.17.0 deduped
  ├─┬ babel-eslint@10.1.0
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-config-react-app@6.0.0
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-plugin-flowtype@5.2.0
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-plugin-import@2.22.1
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-plugin-jest@24.1.3
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-plugin-jsx-a11y@6.4.1
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-plugin-react-hooks@4.2.0
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-plugin-react@7.22.0
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-plugin-testing-library@3.10.1
  │ ├─┬ @typescript-eslint/experimental-utils@3.10.1
  │ │ └── eslint@7.17.0 deduped
  │ └── eslint@7.17.0 deduped
  ├─┬ eslint-webpack-plugin@2.4.1
  │ └── eslint@7.17.0 deduped
  └── eslint@7.17.0

→ インストールされていることは確認できた。

ESLintの設定ファイルの作成

雛形の作成

以下のコマンドを実行して、ESLintの設定ファイルの雛形を生成する。

$ npx eslint --init

eslint.org

コマンドを実行すると、対話モードで用途に関する質問をいくつかされるので、原則『りあクト!』に紹介されているのと同じように回答していく。(第6章参照)

回答が完了すると、コマンドを実行したディレクトリ直下に.eslintrc.jsというファイルが生成されている。

この時に.eslintcacheというファイルも作成されるが、このファイルはGit管理の対象外にしたいかつ、create-react-appコマンドで生成された.gitignoreには含まれていないので、.gitignoreに以下の1行を追加する。

.eslintcache

設定のカスタマイズ

上記で生成された設定をカスタマイズする。

といっても、以下の『りあクト!』の作者の方がGitHubに公開してくださっている設定を、それぞれの意味を簡単に確認しながらコピペしていくだけである。(解説は本の方を参照。)
github.com

プラグインに関しては、以下の3つを追加している。

www.npmjs.com
www.npmjs.com
github.com

本の方ではyarnを使用しているので、.eslintrc.jsに追加したモジュールをyarnでインストールしているが、npmを使用している場合はnpx eslint --init実行時にpackage.jsonにも追加されるようなので、手でインストールする必要はなかった。

型定義ファイルが存在する場合は追加するためにtypesyncを実行する。

$ node_modules/typesync/bin/typesync

typesyncをローカルインストールするとpathが通らないので、node_modules配下のpathを明示しないといけないことに気づいた。

VS CodeとESLintを連携する。

marketplaceを検索して、以下の「dbaeumer.vscode-eslint」というextensionをインストールする。

f:id:kamatimaru:20210103202102p:plain

デフォルトの設定値をみた感じ、特に設定値の変更は不要そうだった。
(実際に開発してみて、変更が必要な設定値があったら追記・修正します。)

以上