Skip to content
← Back to rules

unicorn/filename-case スタイル

何をするか

ファイル名のケーススタイルを一貫して強制することで、プロジェクトの構成と保守性を向上させます。 デフォルトでは kebab-case が強制されますが、他のスタイルも設定可能です。

index.jsindex.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

ファイル名の . で区切られた追加部分を、ファイル名の一部ではなく拡張子の一部として扱うかどうか。

使用方法

このルールを有効にするには、設定ファイルまたは CLI を使用できます:

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

参考文献