-
Notifications
You must be signed in to change notification settings - Fork 1
/
.eslintrc.yml
77 lines (77 loc) · 3.66 KB
/
.eslintrc.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
env:
browser: true
es2021: true
extends:
- plugin:yaml/recommended
- plugin:markdown/recommended
- plugin:editorconfig/noconflict
- eslint:recommended
- plugin:react/recommended
- plugin:react-hooks/recommended
- plugin:import/recommended
- plugin:import/typescript
- plugin:@typescript-eslint/recommended
- plugin:@typescript-eslint/eslint-recommended
# 極力 Airbnb ルールを適用したいため、末尾に近づけて配置する
- airbnb-typescript
- plugin:prettier/recommended
overrides:
- files:
- '*.js'
- '*.jsx'
env:
node: true
rules:
# JavaScript に限り、エクスポートする関数における型推論を許容する。
# 既定では全面禁止。JavaScript では型の明示が困難であるため。
# (JSDoc で擬似的には可能)
'@typescript-eslint/explicit-module-boundary-types': 'off'
# JavaScript に限り `require` 構文を許容する。既定では全面禁止。
# JavaScript は各種設定ファイルなど、トランスパイルの範囲外で使用する
# 状況が多く、import が使いづらい。
'@typescript-eslint/no-var-requires': 'off'
parser: '@typescript-eslint/parser'
parserOptions:
ecmaFeatures:
impliedStrict: true
project: ./tsconfig.json
root: true
rules:
# import 構文における、型のみのインポートで通常インポートを使用することを
# 警告付きで許可する。既定は無条件許可。バンドルサイズを削減するために、
# ビルド時における Tree Shaking を正しく機能させる必要があるが、
# 型インポート構文の積極的な活用は、これに大きく貢献できる。
'@typescript-eslint/consistent-type-imports': warn
# 特定のファイルを除き、devDependencies に対する依存は禁止。
# 既定では全面禁止。内部的に Webpack により Tree Shaking されるため、
# 厳格な依存パッケージの分離を行う必要性は薄いが、整理しやすくするために
# 一部パッケージを devDependencies へと分離している。
import/no-extraneous-dependencies:
- error
- devDependencies:
- '**/*.config.?s'
# import 構文における、順序の任意並び替えを警告付きで許可する。
# 既定は無条件許可。import 部の雪だるま式肥大化問題対処のため導入。
import/order: warn
# 非推奨のメソッドやプロパティの使用を警告付きで許可する。既定は禁止。
# 既存のコードを大規模に修正するまでの、暫定的措置。
react/no-deprecated: warn
# prop-types の記述省略を許可する。既定は禁止。
# トランスパイル済みコンポーネントを TypeScript ではないプロジェクトから
# 再利用するようなシチュエーションでは必須だが、状況的に考えにくい。
react/prop-types: 'off'
# React 17 から、JSX/TSX における `React` のインポートは強制ではなくなり、
# このルールも不要となった。既定は JSX/TSX において強制。
# See: https://ja.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html#eslint
react/react-in-jsx-scope: 'off'
# import 構文の複数 export における順序の任意並び替えを、警告付きで
# 許可する。既定は無条件許可。import 部の雪だるま式肥大化問題対処のため。
sort-imports:
- warn
# `import/order` ルールを優先し、矛盾しうるルールは無効化する。
- ignoreCase: true
ignoreDeclarationSort: true
settings:
import/resolver:
typescript:
alwaysTryTypes: true