웹사이트 | ESLint 구성 | 규칙 | ESLint에 기여 | 버그 신고 | 행동강령 | 트위터 | 불화 | 마스토돈
ESLint는 ECMAScript/JavaScript 코드에서 발견된 패턴을 식별하고 보고하는 도구입니다. 여러 면에서 몇 가지 예외를 제외하면 JSLint 및 JSHint와 유사합니다.
전제 조건: SSL 지원으로 구축된 Node.js( ^18.18.0
, ^20.9.0
또는 >=21.1.0
). (공식 Node.js 배포판을 사용하는 경우 SSL이 항상 내장되어 있습니다.)
다음 명령을 사용하여 ESLint를 설치하고 구성할 수 있습니다.
npm init @eslint/config@latest
그런 다음 다음과 같이 모든 파일이나 디렉터리에서 ESLint를 실행할 수 있습니다.
npx eslint yourfile.js
다음 예제와 같이 eslint.config.js
파일에서 규칙을 구성할 수 있습니다.
export default [
{
files : [ "**/*.js" , "**/*.cjs" , "**/*.mjs" ] ,
rules : {
"prefer-const" : "warn" ,
"no-constant-binary-expression" : "error"
}
}
] ;
"prefer-const"
및 "no-constant-binary-expression"
이라는 이름은 ESLint의 규칙 이름입니다. 첫 번째 값은 규칙의 오류 수준이며 다음 값 중 하나일 수 있습니다.
"off"
또는 0
- 규칙을 끕니다."warn"
또는 1
- 규칙을 경고로 설정합니다(종료 코드에는 영향을 주지 않음)."error"
또는 2
- 규칙을 오류로 설정합니다(종료 코드는 1임).세 가지 오류 수준을 사용하면 ESLint가 규칙을 적용하는 방법을 세밀하게 제어할 수 있습니다(자세한 구성 옵션 및 세부 정보는 구성 문서 참조).
ESLint 팀은 현재 버전에 대해 지속적인 지원을 제공하고 이전 버전에 대해서는 6개월 동안 제한된 지원을 제공합니다. 제한된 지원에는 중요한 버그 수정, 보안 문제 및 호환성 문제만 포함됩니다.
ESLint는 파트너인 Tidelift 및 HeroDevs를 통해 현재 버전과 이전 버전 모두에 대한 상업적 지원을 제공합니다.
자세한 내용은 버전 지원을 참조하세요.
ESLint는 OpenJS 재단 행동 강령을 준수합니다.
문제를 신고하기 전에 신고 내용에 대한 지침을 반드시 읽어보시기 바랍니다.
예, ESLint는 기본적으로 JSX 구문 분석을 지원합니다(구성에서 활성화해야 함). JSX 구문 지원은 React 지원과 동일 하지 않습니다 . React는 ESLint가 인식하지 못하는 JSX 구문에 특정 의미를 적용합니다. React를 사용하고 있고 React 의미 체계를 원하는 경우 eslint-plugin-react를 사용하는 것이 좋습니다.
아니요, ESLint와 Prettier는 서로 다른 역할을 합니다. ESLint는 린터(문제가 있는 패턴을 찾는)이고 Prettier는 코드 포맷터입니다. 두 도구를 모두 사용하는 것이 일반적입니다. 서로 잘 작동하도록 구성하는 방법을 알아보려면 Prettier의 설명서를 참조하세요.
ESLint는 ECMAScript 3, 5를 완벽하게 지원하며 2015년부터 가장 최근의 4단계 사양(기본값)까지 매년 매년 지원됩니다. 구성을 통해 원하는 ECMAScript 구문과 기타 설정(예: 전역 변수)을 설정할 수 있습니다.
ESLint의 파서는 공식적으로 최신 최종 ECMAScript 표준만 지원합니다. 3단계 ECMAScript 구문 제안에서 충돌을 피하기 위해 핵심 규칙을 변경할 것입니다(올바른 실험적 ESTree 구문을 사용하여 구현되는 한). 사례별로 언어 확장(예: JSX, Flow 및 TypeScript)을 더 효과적으로 사용하기 위해 핵심 규칙을 변경할 수 있습니다.
다른 경우(단순히 충돌이 발생하지 않는 것이 아니라 새 구문으로 인해 규칙이 더 많거나 더 적은 경우에 경고해야 하는 경우 포함), 다른 파서 및/또는 규칙 플러그인을 사용하는 것이 좋습니다. Babel을 사용하는 경우 @babel/eslint-parser 및 @babel/eslint-plugin을 사용하여 Babel에서 사용 가능한 모든 옵션을 사용할 수 있습니다.
언어 기능이 ECMAScript 표준(TC39 프로세스에 따른 4단계)에 채택되면 기여 지침에 따라 새 기능과 관련된 문제 및 풀 요청을 수락합니다. 그때까지는 실험적 기능에 적합한 파서와 플러그인을 사용하시기 바랍니다.
ESLint는 ESLint의 주요 릴리스마다 지원되는 Node.js 버전을 업데이트합니다. 그 당시 ESLint가 지원하는 Node.js 버전은 다음과 같이 업데이트되었습니다.
ESLint는 Node.js 현재 릴리스 이후에 릴리스된 Node.js 버전에서도 작동할 것으로 예상됩니다.
해당 ESLint 릴리스에 대해 공식적으로 지원되는 Node.js 버전은 빠른 시작 가이드를 참조하세요.
토론을 열거나 Discord 서버에 들러보세요.
package-lock.json
과 같은 잠금 파일은 배포된 애플리케이션에 유용합니다. 이를 통해 환경과 배포 전반에서 종속성이 일관되게 유지됩니다.
npm 레지스트리에 게시되는 eslint
와 같은 패키지에는 잠금 파일이 포함되어 있지 않습니다. 사용자가 ESLint package.json
의 버전 제약 조건을 따르므로 npm install eslint
. ESLint와 그 종속성은 사용자의 잠금 파일이 있는 경우 포함되지만 ESLint의 자체 잠금 파일은 사용되지 않습니다.
우리는 프로젝트에 ESLint를 설치할 때 사용자가 얻는 개발 및 CI에서 최신 호환 종속성 버전을 갖도록 의도적으로 종속성 버전을 잠그지 않습니다.
Twilio 블로그에는 더 자세히 알아볼 수 있는 심층 정보가 있습니다.
우리는 2주마다 금요일이나 토요일에 출시할 예정입니다. 특정 릴리스의 일정에 대한 업데이트는 릴리스 문제를 따라갈 수 있습니다.
ESLint는 보안을 중요하게 생각합니다. 우리는 ESLint가 모든 사람에게 안전하고 보안 문제가 신속하고 책임감 있게 해결되도록 열심히 노력하고 있습니다. 전체 보안 정책을 읽어보세요.
ESLint는 의미론적 버전 관리를 따릅니다. 그러나 코드 품질 도구인 ESLint의 특성으로 인해 부 버전 또는 주 버전 범프가 언제 발생하는지 항상 명확하지는 않습니다. 모든 사람이 이를 명확히 할 수 있도록 ESLint에 대해 다음과 같은 의미 체계 버전 관리 정책을 정의했습니다.
eslint:recommended
가 업데이트되어 Linting 오류(예: 규칙 제거)가 엄격히 줄어듭니다.eslint:recommended
가 업데이트되어 새로운 Linting 오류가 발생할 수 있습니다(예: 규칙 추가, 대부분의 규칙 옵션 업데이트). 우리 정책에 따르면 모든 사소한 업데이트는 이전 릴리스보다 더 많은 Linting 오류를 보고할 수 있습니다(예: 버그 수정). 따라서 빌드 결과를 보장하려면 package.json
에서 물결표( ~
)(예: "eslint": "~3.1.0"
사용하는 것이 좋습니다.
새로운 규칙과 규칙 변경 사항을 평가하는 방법에 대한 정책에 따라 스타일 규칙이 동결됩니다. 이는 다음을 의미합니다.
이 사람들은 프로젝트를 계속 진행하고 도움을 받을 수 있는 자원입니다.
릴리스를 관리하고, 기능 요청을 검토하고, 정기적으로 만나 ESLint가 제대로 유지되는지 확인하는 사람들입니다.