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
ファイル名の . で区切られた追加部分を、ファイル名の一部ではなく拡張子の一部として扱うかどうか。
使用方法
このルールを有効にするには、設定ファイルまたは CLI を使用できます:
{
"rules": {
"unicorn/filename-case": "error"
}
}oxlint --deny unicorn/filename-case