ESLint는 코팅 스타일 가이드를 따르지 않거나 문제가 있는 코드 또는 안티 패턴을 찾기 위해 사용하는 Javascript linter 입니다. ESLint는 처음부터 유용하게 사용할 수 있는 스타일 가이드(built-in rule)을 제공하지만 개발자가 자신의 스타일 가이드를 작성할 수도 있습니다.
👉ESLint 환경 설정
ESLint는 node.js 환경에서 동작 합니다. node.js가 먼저 설치되어야 합니다. [ESLint 공식문서를 참고했습니다.]
🎯환경(env)
env는 사전 정의된 전역 변수 사용을 정의합니다. 자주 사용되는 설정으로는 browser, node가 있습니다.
여기서 eslint-plugin- 접두사를 생략하고 plugin:를 사용하여 사용할 플러그인을 지정할 수 있습니다. eslint:all과 eslint:recommended는 ESLint에 기본으로 제공되는 확장입니다. ESLint는 eslint:all를 프로덕션 용도로 사용하지 않기를 권장하고 있습니다.
또, 자주 사용되는 Typescript는 @typescript-eslint/eslint-plugin를 사용할 수 있습니다. 이 플러그인은 eslint-plugin을 생략하고 설정할 수 있습니다.
"plugins": [
"react",
"@typescript-eslint"
],
🎯전역 (globals)
선언되지 않은 전역변수를 사용하는 경우 ESLint 경고가 발생하지 않도록, globals를 이용하여 사용자 전역 변수를 추가할 수 있습니다.
"globals": {
// 사용자가 추가하는 전역 변수
"Atomics": "readonly",
"SharedArrayBuffer": "readonly"
},
🎯파서 옵션 (parserOptions)
parserOptions은 ESLint 사용을 위해 지원하려는 Javascript 언어 옵션을 지정할 수 있습니다. - ecmaVersion: 사용할 ECMAScript 버전을 설정 - sourceType: parser의 export 형태를 설정 - ecmaFeatures: ECMAScript의 언어 확장 기능을 설정 - globalReturn: 전역 스코프의 사용 여부 (node, commonjs 환경에서 최상위 스코프는 module) - impliedStric: strict mode 사용 여부 - jsx: ECMScript 규격의JSX사용 여부
✔ How would you like to use ESLint? · problems
✔ What type of modules does your project use? · esm
✔ Which framework does your project use? · react
✔ Does your project use TypeScript? · No / Yes
✔ Where does your code run? · browser, node
✔ What format do you want your config file to be in? · JavaScript
✔ Would you like to install them now with npm? · No / Yes
👉전체 기본 세팅 코드
위에 옵션들 설정끝나면 다음과 같이 자동으로 .eslintrc.js파일 생성됩니다. 상황에 따라서 옵션들을 추가 하면 됩니다. [규칙들은 ESLint 사이트 참조]