Linter
Biome의 linter는 코드를 정적 분석하여 일반적인 오류를 찾고 수정하며, 더 나은 코드를 작성하고 현대적인 스타일을 채택하는 데 도움을 줍니다.
이는 여러 언어에 대해 호환 가능하며, 총 454개의 규칙을 제공합니다.
linter는 규칙으로 구성되어 있습니다.
규칙은 해당 요구 사항을 충족하지 않는 코드를 발견할 때 진단을 발생시킵니다. 예를 들어, noDebugger 규칙은 자바스크립트 코드에서 debugger 명령어 사용을 알립니다.
규칙은 info, warn, error 중 하나의 심각도로 진단을 발생시킵니다.
error 심각도의 진단은 명령어가 0이 아닌 코드로 종료되게 하며, info 또는 warn 심각도의 진단은 명령어 실행 실패를 유발하지 않습니다.
warn 진단을 발생시키는 명령어가 실패하도록 하려면 --error-on-warnings 옵션을 사용할 수 있습니다:
biome lint --error-on-warnings ./src기본적으로, Biome의 linter는 권장 규칙만 실행합니다.
모든 규칙을 비활성화하려면, Biome 설정 파일에서 권장 규칙을 비활성화하면 됩니다.
이는 일부 규칙만 활성화하고자 할 때 유용할 수 있습니다.
권장 규칙은 error 심각도로 진단을 발생시킵니다.
규칙은 그룹으로 분류됩니다. 예를 들어, noDebugger 규칙은 그룹 suspicious에 속합니다.
이 그룹의 규칙들은 잘못되었거나 불필요한 코드를 감지합니다.
각 그룹에 대한 설명은 규칙 페이지에서 확인할 수 있습니다.
다른 linter와 달리, 우리는 코드 형식을 검사하는 규칙을 제공하지 않습니다.
이 유형의 검사는 우리의 코드 포맷터로 처리됩니다.
많은 규칙은 자동 적용 가능한 코드 수정을 제공합니다.
Biome은 코드 수정을 안전한 및 안전하지 않은으로 구분합니다.
안전한 수정
섹션 제목: “안전한 수정”안전한 수정은 코드의 의미를 변경하지 않도록 보장됩니다.
명시적인 검토 없이 적용할 수 있습니다.
_안전한 수정_을 적용하려면 --write를 사용하세요:
npx @biomejs/biome lint --write ./srcpnpx @biomejs/biome lint --write ./srcbunx --bun @biomejs/biome lint --write ./srcdeno run -A npm:@biomejs/biome lint --write ./srcyarn exec biome lint --write ./src안전하지 않은 수정
섹션 제목: “안전하지 않은 수정”안전하지 않은 수정은 프로그램의 의미를 변경할 수 있습니다.
따라서 수정 내용을 수동으로 검토하는 것이 좋습니다.
안전한 수정과 안전하지 않은 수정 모두를 적용하려면 --write --unsafe를 사용하세요:
npx @biomejs/biome lint --write --unsafe ./srcpnpx @biomejs/biome lint --write --unsafe ./srcbunx --bun @biomejs/biome lint --write --unsafe ./srcdeno run -A npm:@biomejs/biome lint --write --unsafe ./srcyarn exec biome lint --write --unsafe ./src규범의 핵심 원칙
섹션 제목: “규범의 핵심 원칙”우리는 규범이 정보성 있어야 하며, 사용자가 왜 규범이 활성화되었는지 설명하고, 어떻게 오류를 수정해야 하는지를 알려줘야 한다고 믿습니다.
규칙은 다음 핵심 원칙을 따라야 합니다:
- 사용자에게 오류를 설명합니다. 일반적으로 이는 진단 메시지입니다.
- 사용자에게 왜 오류가 발생했는지 설명합니다. 일반적으로 이는 추가 노드를 통해 구현됩니다.
- 사용자가 해야 할 조치를 안내합니다. 일반적으로 이는 코드 조작 액션을 통해 구현됩니다.
코드 조작 액션이 적용되지 않는 경우, 사용자가 오류를 해결하기 위해 무엇을 해야 하는지 알리는 메모가 필요합니다.
만약 어떤 규범이 이러한 원칙을 따르지 않는다고 생각된다면,
이슈를 열어 주세요.
CLI
섹션 제목: “CLI”다음 명령어는 src 디렉터리 내 모든 파일에 대해 linter를 실행합니다:
npx @biomejs/biome lint ./srcpnpx @biomejs/biome lint ./srcbunx --bun @biomejs/biome lint ./srcdeno run -A npm:@biomejs/biome lint ./srcyarn exec biome lint ./src명령어는 파일과 디렉터리 목록을 받습니다.
사용 가능한 모든 옵션에 대한 자세한 정보는 CLI 참조 문서를 참조하세요.
규칙 또는 그룹 무시
섹션 제목: “규칙 또는 그룹 무시”버전 v1.8.0부터, biome lint 명령어는 --skip 옵션을 지원하여 특정 그룹에 속하는 규칙 또는 규칙 자체를 비활성화할 수 있습니다.
예를 들어, 다음 명령어는 style 그룹의 모든 규칙과 suspicious/noExplicitAny 규칙을 무시합니다:
biome lint --skip=style --skip=suspicious/noExplicitAny규칙 또는 그룹 실행
섹션 제목: “규칙 또는 그룹 실행”버전 v1.8.0부터, biome lint 명령어는 --only 옵션을 지원하여 단일 규칙이나 특정 그룹에 속하는 규칙만 실행할 수 있습니다.
예를 들어, 다음 명령어는 style/useNamingConvention, style/noInferrableTypes 규칙, 그리고 a11y 그룹에 속하는 규칙만 실행합니다.
규칙이 설정에서 비활성화된 경우, 권장 규칙은 error 심각도로, 그렇지 않은 경우는 warn 심각도로 처리됩니다.
biome lint --only=style/useNamingConvention --only=style/noInferrableTypes --only=a11y규칙은 필요에 따라 구성할 수 있습니다.
규칙 비활성화
섹션 제목: “규칙 비활성화”규칙의 심각도가 error, warn, info인 경우 활성화됩니다.
off로 설정하여 규칙을 비활성화할 수 있습니다.
다음 설정은 권장 규칙인 noDebugger를 비활성화하고, noShoutyConstants와 useNamingConvention 규칙을 활성화합니다.
warn 심각도는 리팩터링 중에 CI를 통과시키고자 할 때 유용합니다. 진단 메시지는 노란색입니다.
warn로 설정된 규칙이 트리거될 때 --error-on-warnings를 사용하면 오류 코드로 종료됩니다.
info 심각도는 --error-on-warnings를 전달해도 커맨드 라인의 종료 코드에 영향을 주지 않습니다. 진단 메시지 색상은 파란색입니다.
{ "linter": { "rules": { "suspicious": { "noDebugger": "off", "noConsoleLog": "info" }, "style": { "noShoutyConstants": "warn", "useNamingConvention": "error" } } }}규칙 수정 설정
섹션 제목: “규칙 수정 설정”버전 v1.8.0부터, fix 옵션을 사용하여 수정 항목을 구성할 수 있습니다. 세 가지 옵션은 다음과 같습니다:
none: 규칙이 코드 수정을 발생시키지 않음;safe: 규칙이 안전한 수정을 발생시킴;unsafe: 규칙이 안전하지 않은 수정을 발생시킴;
{ "linter": { "rules": { "correctness": { "noUnusedVariables": { "level": "error", "fix": "none" } }, "style": { "useConst": { "level": "warn", "fix": "unsafe" }, "useTemplate": { "level": "warn", "fix": "safe" } } } }}규칙 옵션
섹션 제목: “규칙 옵션”일부 규칙은 옵션을 가집니다.
옵션은 규칙 값의 설정 방식에 따라 다릅니다.
level: 진단의 심각도를 지정함;options: 규칙에 따라 달라짐;
{ "linter": { "rules": { "style": { "useNamingConvention": { "level": "error", "options": { "strictCase": false } } } } }}코드 무시
섹션 제목: “코드 무시”개발자가 특정 코드 라인에서 linter 규칙을 무시하고자 하는 경우가 있습니다.
이를 위해 진단을 발생시키는 라인 위에 무시 주석을 추가하면 됩니다.
무시 주석은 다음 형식을 따릅니다:
// biome-ignore lint: <설명>// biome-ignore lint/suspicious/noDebugger: <설명>여기서
biome-ignore는 무시 주석의 시작 부분입니다;lint는 linter를 무시합니다;/suspicious/noDebugger: 선택 사항, 무시하고자 하는 그룹과 규칙 이름;<설명>: 왜 규칙이 비활성화되었는지 설명
예시:
// biome-ignore lint: 이유debugger;// biome-ignore lint/suspicious/noDebugger: 이유debugger;Biome는 전체 파일을 무시하는 주석을 제공하지 않습니다.
그러나 Biome 설정 파일을 이용해 파일을 무시할 수 있습니다.
또한, VCS가 무시하는 파일을 무시하는 방법도 있습니다.
다른 linter에서 마이그레이션
섹션 제목: “다른 linter에서 마이그레이션”Biome Lint의 많은 규칙은 다른 linter들에서 영감을 얻었습니다.
ESLint 또는 typescript-eslint와 같은 다른 linter에서 마이그레이션을 원한다면, 규칙 소스 페이지를 참조하세요.
ESLint에서 마이그레이션하는 경우, 마이그레이션 가이드를 전용으로 준비했습니다.
Copyright (c) 2023-present Biome Developers and Contributors.