제로초님이 한 것.
1.
npm i eslint -D
2.
npm i eslint-plugin-import -D
3.
npm i eslint-plugin-react -D
4.
npm i eslint-plugin-react-hooks -D
//.eslintrc 내용
{
"parserOptions":{
"ecmaVersion":2021,
"sourceType":"module",
"ecmaFeatures" : {
"jsx": true
}
},
"env" : {
"browser":true,
"node": true,
"es6":true
},
"extends" : [
"eslint:recommended",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
"plugin::import/recommended"
],
"plugins": [
"import",
"react",
"react-hooks"
]
}
ESLint는 크게 4가지로 구분되어 있다.
- 환경 (코드가 돌아갈 환경을 설정해준다. 각 환경은 특정한 전역변수 조합을 갖고 있으며, 이들을 사용할 수 있게 만든다. 예를 들어
console
같은 것을 못 쓴다.)
- 전역 변수 (추가로 사용할 전역변수를 정의할 수 있다.
$
(jquery))
- 규칙 (어떤 룰을 활성화하고 에러의 레벨을 정한다.)
- 플러그인 (규칙, 환경, 설정들의 모음집(서드파티))
위의 설정에서 환경은 브라우저와 node.js에서 사용한다는 뜻
설정 없음.
설정 없음.
3가지 플러그인을 사용하고 있다.
extends
는 플러그인 에서 사용할 규칙을 지정해주는 역할이다.
예를 들어서, react
라는 플러그인의 옵션들 중에서 recommended
옵션을 사용하는 것이다.
이때,
eslint-plugin-jquery
모듈을 예로 들면, 앞의 prefix를 제거할 수 있다.
아래처럼.
{
// ...
"plugins": [
"jquery", // means eslint-plugin-jquery
]
// ...
}
scoped package에서는 사용 못한다고 나와있다. 뭔지는 모르겠음!
{ // ... "plugins": [ "@jquery/jquery", // means @jquery/eslint-plugin-jquery "@foobar" // means @foobar/eslint-plugin ] // ... }
이 부분은 ECMAScript version이나 JSX 등을 지원하도록 만드는 부분이다.
공식 문서를 읽다가 뭔가 중요할 것 같아서 기록해두자면,
parserOption은 문법 자체를 지원하는 것이므로, 전역변수를 지원하는 것은 아니다. 따라서 es6
의 문법과 전역 변수 모두를 사용하고 싶다면,
{ "env": { "es6": true } }
만 정의하면 된다.
{ "env": { "es6": true } }
는 문법을 자동으로 포함하지만,
{ "parserOptions": { "ecmaVersion": 6 } }
는 전역변수를 포함하지 않는다고 한다.
각 세부 선택지들은 공식문서에 있으니 정리는 하지 않겠다!
구글링 하니 금방 나오더라.
"eslint-config-prettier"
"eslint-plugin-prettier"
우선 이 두 가지를 설치하면 된다.
root 디렉토리에 .prettierrc 설정을 적용한다.
{
"printWidth": 100,
"tabWidth": 2,
"singleQuote": true,
"trailingComma": "all",
"bracketSpacing": true,
"semi": true,
"useTabs": false,
"arrowParens": "avoid",
"endOfLine": "lf"
}
대충 이걸 사용하였다.