ESLint 설정

차유림·2021년 11월 20일
10
post-custom-banner

ESLint 는 자바스크립트의 문법을 확인해주는 도구이다.

eslint 초기 설정

npm i -g eslint로 eslint를 설치하고
eslint --init 명령어를 실행한 후,
아래와 같이 몇가지 설정 조건에 대해 선택하면
.eslintrc.json파일을 자동으로 생성해준다.

eslint --init

{
  "env": {
    "browser": true,
    "es2021": true
  },
  "extends": ["plugin:react/recommended", "airbnb", "prettier"],
  "parserOptions": {
    "ecmaFeatures": {
      "jsx": true
    },
    "ecmaVersion": 2018,
    "sourceType": "module"
  },
  "plugins": ["react"],
  "rules": {
    "no-console": "warn"
  }
}
  • env: 사용 환경 의미
  • extends : 확장 기능 사용
  • parserOptions: 버전과 모듈 사용 여부
  • plugins : 사용되는 플러그인
  • rules : 세부 설정 (규칙) 추가

익스텐션 설치

익스텐션 설치

VS Code 익스텐션에서 eslint를 검색하여 설치하면,
코드에디터에서 바로 eslint 검사결과를 표시해준다.
(오류일 경우 빨간줄, 경고일 경우 노란줄 표시
마우스 올리면 어떤 문제인지 알려줌)

오류 표시

저장시 자동 적용

⌘ + , (윈도우/리눅스에서는 Ctrl + ,) 키를 눌러서 VS Code 환경 설정을 열기
Auto Fix on Save 를 검색한 후 체크
코드 저장시, ESLint 가 자동으로 고칠 수 있는 것들은 변경 후 저장

자동 적용

ESLint 규칙

다양한 ESLint 설정을 묶어서 라이브러리로도 제공된다.

eslint 설정 라이브러리를 적용하는 방법은 다음과 같다.
airbnb 규칙을 예시로 한다.

1. 라이브러리 설치

$ yarn add eslint-config-airbnb

2. package.json 설정 변경

"eslintConfig": {
    "extends": [
      "react-app",
      "airbnb"
    ]
  },

규칙 커스텀

package.json 에서 "rules" 값을 설정하여
세세하게 eslint 규칙을 변경할 수 있다.

1. 규칙이름 확인

먼저 규칙에 어긋나서 빨간줄이 나타나는 곳에 커서를 올리면
어떤 규칙이 적용되는지 이름을 확인할 수 있다(분홍색박스).

규칙 확인

2. 규칙 변경

rules 에 앞에서 확인한 이름을 key로
경고 수준을 value 로 작성한다.

  • "off": 무시(규칙 비활성화) - 0
  • "warn": 경고수준(노란줄) - 1
  • "error": 오류(빨간줄) - 2

파일별 규칙 설정

몇몇 파일에서는 다른 eslint rule을 적용해야 하는 경우,
overrides, files 키를 사용할 수 있다.

"eslintConfig": {
    "extends": [
      "react-app",
      "airbnb",
      "prettier"
    ],
    "rules": {
      "react/jsx-filename-extension": "off",
      // off 대신 0을 써줄수도 있다.  
      "react/jsx-filename-extension": 0,
    },
    "overrides": [
      {
        "files": ["*-test.js","*.spec.js"],
        "rules": {
          "no-unused-expressions": "off"
        }
      }
    ]
  },

eslint 추가 설정

eslint-config-prettier

eslint와 prettier를 같이 사용중이라면,
prettier에서 관리하는 스타일을 eslint에서도 확인하여
규칙이 다를 경우, 충돌이 발생할 수 있다.

eslint-config-prettier를 설치하면
중복관리되는 스타일을 eslint에서 비활성화할 수 있다.

$ npm i -D eslint-config-prettier

package.json 파일 또는 .eslintrc.json 파일에서
설정 수정하기.

  • package.json 파일에 설정한 경우
"eslintConfig": {
    "extends": [
      "react-app",
      "airbnb",
      "prettier"
    ]
  },
  • .eslintrc.json 파일에 설정한 경우
"extends": [
      "react-app",
      "airbnb",
      "prettier"
],

eslint-plugin-html

eslint 설정후 html 파일을 보면
다음과 같은 parsing error 가 발생한다.
Parsing error: Unexpected token <

parsing error

해결법 1

html 파일에 lint를 적용하고 싶지 않다면,
.eslintignore 파일에(없다면 생성)
html 파일을 추가하면 된다.
아래는 ignore 파일 예시이다.

.vscode/*
dist/*
node_modules/*
**/index.html
**/assets/*.html

해결법 2

html 파일또한 lint를 적용하여 문법확인하고 싶다면
eslint-plugin-html을 설치할 수 있다.

$ npm i -D eslint-plugin-html

.eslintrc.json 파일에서 설정 수정하기

{
    "plugins": [
        "html"
    ]
}
profile
🎨프론트엔드 개발자💻
post-custom-banner

0개의 댓글