ESLint: 구성 가능한 JavaScript 린터이다.
린트 : 린트(lint) 또는 린터(linter)는 소스 코드를 분석하여 프로그램 오류, 버그, 스타일 오류, 의심스러운 구조체에 표시(flag)를 달아놓기 위한 도구들을 가리킨다.
규칙
ex) semi규칙 -> 항상 세미콜론을 요구하거나 명령문이 세미콜론으로 끝나지 않도록 규칙을 설정할 수 있다.
구성파일
참고
"type":"module”로 지정하지 않은 경우 package.jsoneslint.config.js와 같은 CommonJS 형식이어야 한다.
구성 객체
간단 예시
{
"root": true,
"env": {
"browser": true,
"es2020": true
},
"extends": [
"next/core-web-vitals",
"prettier"
],
"ignorePatterns": ["dist", ".eslintrc.cjs"],
"parser": "@typescript-eslint/parser",
"plugins": [
"react-refresh",
"simple-import-sort"
],
"rules": {
"new-cap": "off",
"react/function-component-definition": [
2,
{
"namedComponents": "arrow-function"
}
],
"react/jsx-props-no-spreading": "off",
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": true
}
],
"@typescript-eslint/no-unused-expressions": "off",
"unused-imports/no-unused-vars": [
"warn",
{
"vars": "all",
"varsIgnorePattern": "^_",
"args": "after-used",
"argsIgnorePattern": "^_"
}
]
},
"parserOptions": {
"ecmaVersion": "latest",
},
"settings": {
"import/resolver": {
"typescript": {}
}
}
}
plugins와 extends의 차이는?
코드를 훑어보다가 extends에서 plugin:import/errors라는 것을 보았는데 extends가 plugins의 확장인 것인가에 대해서 궁금하게 되었다.
요약
plugins: 규칙을 추가만 해줌. 직접 어떤 규칙을 사용할지 선택해야 함.
extends: 미리 정해진 규칙 세트를 한 번에 적용.
출처