[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 theecmaVersionparser 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/