用途:ls-lint 是一个目录与文件名 linter,用于在项目文件系统中强制命名约定。它处理数千文件仅需毫秒级,跨平台支持 Windows、macOS、Linux,提供完整 Unicode 支持,最小依赖(go-yaml、doublestar)。
主要能力:通过项目根目录的 .ls-lint.yml 配置,含 ls(规则)与 ignore(排除路径)两部分。内置六种规则:lowercase、camelCase、PascalCase、snake_case、SCREAMING_SNAKE_CASE、kebab-case,可用 | 组合多规则。支持按扩展名(.js、.ts)与子扩展名(.d.ts、.test.ts、.module.css)设置规则,.dir 约束目录命名,.* 匹配全部扩展名。支持路径模式:目录级规则覆盖全局、glob 单星与双星匹配、花括号备选。高级规则包括 regex:^pattern$ 自定义正则、目录名替换 ${0}、及 exists:1、exists:1-5、exists:0 数量约束。
必要用法:先确认版本 ls-lint --version 或 npx @ls-lint/ls-lint --version,不是 v2.3 应查阅对应官方文档。安装:npm install -D @ls-lint/ls-lint、npx @ls-lint/ls-lint、brew install ls-lint,或直接下载。运行:npx @ls-lint/ls-lint、ls-lint --config path/to/.ls-lint.yml、ls-lint --workdir /path/to/project。排障用 ls-lint --debug。可集成 GitHub Actions(ls-lint/action@v2),支持 config、workdir、error-output-format、warn、debug 选项。
适用场景:JavaScript/TypeScript 项目、React 组件命名、monorepo 中统一目录与文件名规范,可在 CI 中作为 lint 步骤。
限制:本文档仅针对 v2.3,其他版本配置语法与可用规则可能不同;资料未提供收费、价格、平台或效果信息;忽略路径需使用正确 glob 语法;规则可能被更具体的规则覆盖。