ESLint
計測
TIMING=1 npm run lint
plugin と extends
extends はルールを extend する
on/off を切り替えたり
plugin はいろいろできる?
off, warn, error をなんと数字でかけてしまうという仕様でいつもわからなくなるときに読むやつ
node_modules と dotfiles dotdirectories はデフォルトで ignore される
monorepo の場合、一元管理するかディレクトリごとにするか
it looks in the current working directory to find an .eslintignore file
いろいろな状況があるとは思うが、root の eslint 使っている場合はそれ以下のディレクトリに ignore file があっても認識されない
ignore file をわけるのであれば、それぞれのディレクトリで eslint を実行する必要がある
読んでいないが share config も関係あるかも
サブディレクトリに root: true が設定された .eslintrc があると、実際のプロジェクトルートで実行する eslint が効かない
disable
eslint コマンドには file か directory を指定する必要がある
config file にはどこのを対象にするかのディレクティブはないと思われる
設定は書く必要がある
面倒なので、extends に eslint:recommended とかできる
内容
airbnb recommendation
for in for of 非推奨
forEach 使えばよし
下記設定もおそらくこのプラグインで場合によって必要になるもの
code:eslint.rc
parserOptions: {
}
type-aware linting する場合は、含めるファイルを指定する必要がある
tsconfigRootDir
環境によっては parseOptions に指定した ts 用のファイルを見つけられない場合がある
working directory からの相対パスと評価されるため
解決するには tsconfigRootDir: __dirname を追加
vscode の場合 eslint plugin の設定でも解決できる
props spreading について
Notes for use: Filter out unnecessary props when possible.
不要な props は取り除くと良い
Rule を確認するには
git hooks で実行
lint-staged を使う場合
code:shell
npm install --save-dev lint-staged
npx husky-init && npm install