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