본문 바로가기

자유게시판

ESLint?

728x90

Javascript 코드에서 발견된 문제 패턴을 식별하기 위한 정적 코드 분석 도구

코딩 스타일 문제와 코드 품질 모두 제어해주고 규칙을 정의할 수 있다.

주로 하드코딩에서 문법적으로 문제가 있는 코드를 Lint 해주기 위해서만 사용하는 분석도구이므로 설치 시, 의존성 라이브러리에 위치한다.

Installation

$> yarn add --dev
eslint eslint-config-airbnb-base eslint-import-resolver-webpack
eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react
eslint-plugin-react-hooks

eslint


ESLint 그 주체이다. Coding Convention Guide를 사용하기 위해서 필요

eslint-config-airbnb-base


Javascript의 코딩 컨벤션 중 하나인 airbnb 코드 스타일의 base이다.

깔끔하며, 가독성의 혼란을 주지 않고 사용할 수 있다.

다만, 외국계 기업이기 때문에 한국어를 지원하지 않는다.

코딩 컨벤션의 종류는 다양하다. Naver의 경우는 airbnb를 기반으로 만들어져 있다.

라이브러리 명은 naver/eslint-config-naver 이며, 후에 자세히 다룰 것이다.

가장 대중적으로 사용하는 airbnb 스타일을 가져가져도록 하며, 그 중에서도 base는 리액트 관련 규칙이 들어있지 않다. 때문에 base를 설치할 때에는 리액트 관련 규칙도 커스텀해주는 것이 좋다.

eslint-import-resolver-webpack


Webpack에서 import 문제를 해결해주는 의존성 라이브러리

eslint-plugin-import


import 문제를 해결해주는 플러그인 라이브러리

eslint-plugin-jsx-a11y


Jsx파일에서 HTML 접근성 문제를 야기하는 부분을 lint로 체크하고 해결방법을 알려준다.

eslint-plugin-react


리액트 관련 규칙이 들어있는 플러그인이다.

eslint-plugin-react-hooks


Eslint-plugin-react가 리액트 관련 규칙 플러그인이라면, 이 플러그인은 리액트의 훅 관련 규칙이다.

리액트의 예전 방식은 클래스형 컴포넌트였다. 클래스형 컴포넌트는 프론트엔드 프레임워크의 생명주기가 있는 컴포넌트였다. 컴포넌트가 변경될 때 생명주기가 실행되는데, 그걸 제어하는 방법이다. 하지만 클래스형 컴포넌트는 작은 컴포넌트에서 실행하기엔 무거운 방식이였고, 리액트는 함수형 컴포넌트 방식을 권장했다.

적절하게 사용하라지만 그냥 함수형을 모든 컴포넌트에서 사용해라

함수형에도 생명주기가 있기 때문에, 훅 관련 규칙 플러그인을 사용한다.

728x90