Skip to content
← Back to rules

unicorn/filename-case Style

作用

强制文件名使用一致的大小写风格,以改善项目组织和可维护性。 默认情况下会强制使用 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

是否允许 camel case,例如 someFileName.js

cases.kebabCase

type: boolean

default: true

是否允许 kebab case,例如 some-file-name.js

cases.pascalCase

type: boolean

default: false

是否允许 pascal case,例如 SomeFileName.js

cases.snakeCase

type: boolean

default: false

是否允许 snake case,例如 some_file_name.js

ignore

type: string

用于忽略文件名的正则表达式模式。

你可以像这样设置 ignore 选项:

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

multipleFileExtensions

type: boolean

default: true

是否将文件名中额外的、由 . 分隔的部分视为扩展名的一部分,而不是文件名的一部分。

如何使用

To enable this rule using the config file or in the CLI, you can use:

json
{
  "rules": {
    "unicorn/filename-case": "error"
  }
}
ts
import { defineConfig } from "oxlint";

export default defineConfig({
  rules: {
    "unicorn/filename-case": "error",
  },
});
bash
oxlint --deny unicorn/filename-case

版本

此规则是在 v0.0.14 中添加的。

参考