Skip to content
← Back to rules

unicorn/filename-case 스타일

작동 방식

파일 이름의 일관된 대소문자 스타일을 강제하여 프로젝트 구성과 유지보수성을 향상시킵니다.
기본적으로 kebab-case가 강제되지만, 다른 스타일도 구성할 수 있습니다.

index.js, index.ts 등의 파일은 이 규칙에서 제외되며, 이는 다른 대소문자 스타일로 안정적으로 이름을 변경할 수 없기 때문입니다 (주로 PascalCase와 관련된 문제).

왜 나쁜가요?

일관되지 않은 파일 이름 규칙은 파일을 찾거나 프로젝트를 탐색하는 것을 어렵게 만들고, 코드베이스 전반에 걸쳐 일관성을 유지하는 데 어려움을 초래합니다.
이름 규칙을 표준화하면 가독성이 향상되고 인지 부담이 줄어들며, 대규모 개발에서 최선의 실천 방법과 일치합니다.

예시

각 스타일에 해당하는 올바른 파일 이름 예시:

kebabCase

  • some-file-name.js
  • some-file-name.test.js
  • some-file-name.test-utils.js

camelCase

  • someFileName.js
  • someFileName.test.js
  • someFileName.testUtils.js

snakeCase

  • some_file_name.js
  • some_file_name.test.js
  • some_file_name.test_utils.js

pascalCase

  • SomeFileName.js
  • SomeFileName.Test.js
  • SomeFileName.TestUtils.js

구성

이 규칙은 다음 속성을 가지는 구성 객체를 수용합니다.

case

type: "kebabCase" | "camelCase" | "snakeCase" | "pascalCase"

default: "kebabCase"

파일 이름에 적용할 대소문자 스타일입니다.

case 옵션을 다음과 같이 설정할 수 있습니다:

json
{
  "unicorn/filename-case": [
    "error",
    {
      "case": "kebabCase"
    }
  ]
}

cases

type: object

default: {"kebabCase":true, "camelCase":false, "snakeCase":false, "pascalCase":false}

파일 이름에 허용하거나 강제할 대소문자 스타일입니다. true는 해당 스타일을 허용한다는 의미이고, false는 금지한다는 의미입니다.

cases 옵션을 다음과 같이 설정할 수 있습니다:

json
{
  "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 옵션을 다음과 같이 설정할 수 있습니다:

json
{
  "unicorn/filename-case": [
    "error",
    {
      "ignore": "^foo.*$"
    }
  ]
}

multipleFileExtensions

type: boolean

default: true

파일 이름의 추가적인 .로 구분된 부분을 파일 이름의 일부가 아니라 확장자로 간주할지 여부입니다.

사용 방법

이 규칙을 구성 파일 또는 명령줄 인터페이스(클라이언트)를 통해 활성화하려면 다음을 사용할 수 있습니다:

json
{
  "rules": {
    "unicorn/filename-case": "error"
  }
}
bash
oxlint --deny unicorn/filename-case

참고 자료