ls-lint


ls-lint是一个非常快的文件和目录名称linter,它提供了一种简单快速的方法来将某些结构带到您的项目目录中。

主要特点

  • 在一个.ls-lint.yml文件中管理的简单规则的最小设置
  • 适用于目录和文件名-支持所有扩展名-完全支持unicode
  • 速度超快-数毫秒内可删除数千个文件和目录
  • 支持WindowsMacOSLinux + NPM软件包和Docker映像
  • 受到Vue.js 3Nuxt.js,Vant等的信任
  • 几乎零第三方依赖关系-仅go-yamldoublestar

安装

Linux

curl -sL -o ls-lint https://github.com/loeffel-io/ls-lint/releases/download/v1.9.0/ls-lint-linux && chmod +x ls-lint && ./ls-lint

MacOS

curl -sL -o ls-lint https://github.com/loeffel-io/ls-lint/releases/download/v1.9.0/ls-lint-darwin && chmod +x ls-lint && ./ls-lint

Windows 手动下载

ls-lint-windows.exe

NPM Package

npm install -g @ls-lint/ls-lint # global
npm install @ls-lint/ls-lint # local

Run

ls-lint # global
node_modules/.bin/ls-lint # local - use backslashs for windows

NPX

npx @ls-lint/ls-lint

Docker Image

docker run -t -v /path/to/project:/data lslintorg/ls-lint:v1.9.0

基础用法

  • 创建配置
  • 扩展和子扩展
  • 全局配置
  • 整理目录名称
  • 使用多个规则
  • 不同目录的不同规则
  • 使用目录模式
    • 全局替换
    • 局部替换

创建配置

您的ls-lint配置必须位于项目根目录中的.ls-lint.yml文件中,并提供两个选项

.ls-lint.yml

  ls:
      ...

  ignore:
      ...

ls 使用扩展,子扩展和目录的所有规则定义项目目录的结构 ignore可以完全忽略其中的某些文件和目录

扩展和子扩展

项目的全局配置是可选的,但可能是最佳解决方案.假设您要定义所有.js,.ts和.d.ts项目文件都必须在kebab-case样式,但您想忽略.git和node_modules目录-可以这样解决

.ls-lint.yml

ls:
    .js: kebab-case
    .ts: kebab-case
    .d.ts: kebab-case

ignore:
    - .git
    - node_modules

很简单,不是吗?

整理目录名称

您还可以通过.dir定义来定义目录规则

.ls-lint.yml

ls:
    packages/src:
        .dir: kebab-case # applies for the current directory and all their subdirectories
        .js: kebab-case

不同目录的不同规则

通常,不同目录有不同的规则,或者您只想为某些特定目录定义规则

.ls-lint.yml

ls:
    .js: kebab-case

    models:
        .js: PascalCase

    src/templates:
        .js: snake_case

记住 目录配置(例如模型或src / templates)将覆盖当前目录及其所有子目录的所有规则

使用目录模式

  • 全局匹配

全局模式或*可用于所有ls目录配置

.ls-lint.yml

ls:
    packages/*/src: # matches any sequence of non-path-separators
        .js: kebab-case

    packages/**/templates: # matches any sequence of characters, including path separators
        .html: kebab-case
  • 局部匹配
    局部模式可用于所有ls目录配置:
    .ls-lint.yml
ls:
    packages/*/{src,tests}: # matches a sequence of characters if one of the comma-separated alternatives matches
        .js: kebab-case

规则

  • 概括
  • 正则表达式

概括

ls-lint提供了多个开箱即用的规则

规则 别名 描述
regex - 匹配正则表达式模式:^ {pattern} $
lowercase - 每个字母必须小写 忽略非字母
camelcase camelCase 字符串必须为camelCase 只允许使用字母和数字
pascalcase PascalCase 字符串必须为Pascalcase 只允许使用字母和数字
snakecase snake_case 字符串必须为snake_case 只允许使用小写字母,数字和_
kebabcase kebab-case 字符串必须为kebab-case 仅小写字母,数字和-允许
pointcase point.case 字符串必须为“小写” 仅小写字母,数字和.允许的

正则表达式

regex规则为您的配置提供了充分的灵活性,并通过^ {pattern} $模式匹配您的文件名和目录名

示例

.ls-lint.yml

ls:
    .js: regex:[a-z0-9]+ # the final regex pattern will be ^[a-z0-9]+$
使用多个正则表达式规则

| 支持多个正则表达式规则

.ls-lint.yml

ls:
    .js: regex:Schema(\.test)? | regex:Resolver(\.test)?

文章作者: 左智文
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 左智文 !
评论
 上一篇
Markdown Demo Markdown Demo
Markdown 是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。
2020-11-20
下一篇 
HTML 元素参考 HTML 元素参考
本章节,列出所有html元素,以帮助您轻松找到想要的内容。
2019-06-25
  目录