unicorn/filename-case 스타일
작동 방식
파일 이름의 일관된 대소문자 스타일을 강제하여 프로젝트 구성과 유지보수성을 향상시킵니다.
기본적으로 kebab-case가 강제되지만, 다른 스타일도 구성할 수 있습니다.
index.js, index.ts 등의 파일은 이 규칙에서 제외되며, 이는 다른 대소문자 스타일로 안정적으로 이름을 변경할 수 없기 때문입니다 (주로 PascalCase와 관련된 문제).
왜 나쁜가요?
일관되지 않은 파일 이름 규칙은 파일을 찾거나 프로젝트를 탐색하는 것을 어렵게 만들고, 코드베이스 전반에 걸쳐 일관성을 유지하는 데 어려움을 초래합니다.
이름 규칙을 표준화하면 가독성이 향상되고 인지 부담이 줄어들며, 대규모 개발에서 최선의 실천 방법과 일치합니다.
예시
각 스타일에 해당하는 올바른 파일 이름 예시:
kebabCase
some-file-name.jssome-file-name.test.jssome-file-name.test-utils.js
camelCase
someFileName.jssomeFileName.test.jssomeFileName.testUtils.js
snakeCase
some_file_name.jssome_file_name.test.jssome_file_name.test_utils.js
pascalCase
SomeFileName.jsSomeFileName.Test.jsSomeFileName.TestUtils.js
구성
이 규칙은 다음 속성을 가지는 구성 객체를 수용합니다.
case
type: "kebabCase" | "camelCase" | "snakeCase" | "pascalCase"
default: "kebabCase"
파일 이름에 적용할 대소문자 스타일입니다.
case 옵션을 다음과 같이 설정할 수 있습니다:
{
"unicorn/filename-case": [
"error",
{
"case": "kebabCase"
}
]
}cases
type: object
default: {"kebabCase":true, "camelCase":false, "snakeCase":false, "pascalCase":false}
파일 이름에 허용하거나 강제할 대소문자 스타일입니다. true는 해당 스타일을 허용한다는 의미이고, false는 금지한다는 의미입니다.
cases 옵션을 다음과 같이 설정할 수 있습니다:
{
"unicorn/filename-case": [
"error",
{
"cases": {
"camelCase": true,
"pascalCase": true
}
}
]
}cases.camelCase
type: boolean
default: false
카멜 케이스(someFileName.js) 사용 여부를 지정합니다.
cases.kebabCase
type: boolean
default: true
케밥 케이스(some-file-name.js) 사용 여부를 지정합니다.
cases.pascalCase
type: boolean
default: false
패스칼 케이스(SomeFileName.js) 사용 여부를 지정합니다.
cases.snakeCase
type: boolean
default: false
스네이크 케이스(some_file_name.js) 사용 여부를 지정합니다.
ignore
type: string
무시할 파일 이름에 대한 정규 표현식 패턴입니다.
ignore 옵션을 다음과 같이 설정할 수 있습니다:
{
"unicorn/filename-case": [
"error",
{
"ignore": "^foo.*$"
}
]
}multipleFileExtensions
type: boolean
default: true
파일 이름의 추가적인 .로 구분된 부분을 파일 이름의 일부가 아니라 확장자로 간주할지 여부입니다.
사용 방법
이 규칙을 구성 파일 또는 명령줄 인터페이스(클라이언트)를 통해 활성화하려면 다음을 사용할 수 있습니다:
{
"rules": {
"unicorn/filename-case": "error"
}
}oxlint --deny unicorn/filename-case