[JS] ESLint 알고쓰기 : 설정 설명
이채현
이 문서는 eslint.org를 참고하여 eslint 7.32.0
버전에서 작성되었으며, 아래 프로젝트를 기반으로 작성했습니다.
https://github.com/chlee1001/react-typescript-simple-boilerplate
1 | { |
ENV
browser
- browser global variables: true
를 하게되면 **console.log()**를 에러없이 사용할 수 있다.node
- Node.js global variables and Node.js scoping :true
를 하게되면 전역에서 require를 에러없이 사용할 수 있게된다.es2021
- adds all ECMAScript 2021 globals and automatically sets theecmaVersion
parser option to 12.
EXTENDS
extends
는 추가한 플러그인에서 사용할 규칙을 설정한다. 플러그인을 설치하여도, 플러그인은 일련의 규칙집합이며 플러그인을 추가하여도 규칙은 적용되지 않는다. 규칙을 적용하기 위해서는 추가한 플러그인 중, 사용할 규칙을 extends 내에 추가해야한다. 보통 대부분의 플러그인은 recommended
나 strict
, all
등의 자체 설정을 제공한다.
recommended
: 프로젝트에 권장하는 규칙 집합
1 | ... |
PARSER
코드를 분석하기 위한 파싱툴이다. 기본값은 espress이고, 보통 js 워크스페이스에서는 @babel/eslint-parser
를 사용하고 ts 워크스페이스인 경우 @typescript-eslint/parser
를 사용한다. 사실 plugin:@typescript-eslint/recommended
를 포함시키면 @typescript-eslint/parser
가 자동으로 포함되기도 한다.
1 | "parser": "@typescript-eslint/parser" |
PARSER OPTIONS
parserOptions
은 ESLint 사용을 위해 지원하려는 Javascript 언어 옵션을 지정할 수 있습니다.
- project: 이 옵션을 사용하면 제공된 tsconfig에서 정의한 프로젝트에 포함되지 않은 파일이 허용되도록 요청할 수 있다.
- ecmaVersion: 사용할 ECMAScript 버전을 설정
- sourceType: parser의 export 형태를 설정
- ecmaFeatures: ECMAScript의 언어 확장 기능을 설정
- globalReturn: 전역 스코프의 사용 여부 (node, commonjs 환경에서 최상위 스코프는 module)
- impliedStric: strict mode 사용 여부
- jsx: ECMScript 규격의 JSX 사용 여부
1 | "parserOptions": { |
PLUGIN
플러그인 패키지를 설치하고, 해당 플러그인을 plugins
에 추가하여 사용할 수 있다.
1 | "plugins": [ |
RULES
ESLint에는 프로젝트에서 사용하는 규칙을 수정할 수 있다. 규칙을 변경하는 경우, 다음과 같은 방법으로 설정해야한다.
"off"
또는0
: 규칙을 사용하지 않음"warn"
또는1
: 규칙을 경고로 사용"error”
또는2
: 규칙을 오류로 사용
규칙에 추가 옵션이 있는 경우에는 배열 리터럴 구문을 사용하여 지정할 수 있다.
1 | "rules": { |
규칙 무시하기
파일 디렉토리 제외
ignorePatterns
필드 또는 .eslintignore
파일을 작성하여 파일 및 디렉토리를 제외하도록 지정할 수 있습니다.
1 | // .eslintrc 파일 ignorePatterns 설정 |
대체파일 사용
.eslintignore
를 현재 작업 디렉토리가 아닌 다른 파일을 사용하려면 --ignore-path
옵션을 사용하여 명령행에 파일을 지정할 수 있다.
1 | $ eslint --ignore-path .gitignore file.js |
인라인으로 규칙 비활성화
1 | **// 전체 파일 규칙 경고 비활성화, 파일 맨위에 아래 블록 주석 추가** |
참고
Configuring ESLint - ESLint - Pluggable JavaScript Linter
[JS] ESLint 알고쓰기 : 설정 설명
https://devch.co.kr/categories/웹앱/Javascript/JS-ESLint-1-22-07-07/