LoginSignup
1
0
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

ls-lintでファイル、ディレクトリの命名規則をチェックする

Last updated at Posted at 2024-06-29

概要

ls-lintはディレクトリとファイル名のリンターです。
これを導入すればファイル、ディレクトリの命名についての議論をプルリク上でしなくて済み、より高度な議論に専念できると思います。

1. 背景 🖼️

業務でファイル、ディレクトリ名の命名規則について議論がありました。
そのルールを決められるlintのようなものがあるか気になっていた所、ls-lintを知りました。

以下の記事でls-lintを知りました。

今回実際に使って調査してみます。
このリポジトリで検証しました!

2. ls-lintを使ってみる 💪

An extremely fast directory and filename linter - Bring some structure to your project filesystem

ディレクトリとファイル名のリンターと書かれています。

install 🚧

npm i @ls-lint/ls-lint

設定ファイルの作成 ⚙️

src配下のtsファイルの命名について指定する例です。

.ls-lint.yml
ls:
  src:
    .ts: snake_case | camelCase

コマンドを叩く 🚨

検証するディレクトリ構成図は以下です。

.
├── Top.ts
├── node_modules
├── package-lock.json
├── package.json
└── src
    └── Sample.ts

以下をターミナルで叩きます。

npx ls-lint

src/Sample.tsがcamelCaseでもsnakecaseでもないのでエラーになることを確認します。

~/Desktop/github.com/yamatai12/ls-lint-tutorial(main) $ npx ls-lint
2024/06/30 00:47:30 src/Sample.ts failed for rules: snakecase|camelcase

エラーになりました。
また、src配下で命名規則を指定しているので、srcと同じ階層にあるTop.tsはエラーになりません。

設定ファイルの他のオプション ⚙️

正規表現で指定が可能

.ls-lint.yml
ls:
    .ts: regex:^_*

チェックを回避できる

検証するディレクトリ構成図は以下です。

├── Src
│   └── Sample.ts
├── node_modules
├── package-lock.json
└── package.json
.ls-lint.yml
ls:
    .dir: camelCase
igonre:
  - node_modules
  - .git

.dirというのはディレクトリを指しています。
.gitnode_modulesとその配下のディレクトリはチェックされず、Srcのみがエラーになることを確認します。

~/Desktop/github.com/yamatai12/ls-lint-tutorial(main) $ npx ls-lint
2024/06/30 00:59:41 Src failed for rules: camelcase

Srcのみがエラーになりました。

他の用途、記法が以下のdocumentに記載されています!

3. 最後に

  • 命名規則をドキュメントで管理していてそこを毎回確認したり、また風化して忘れ去られることもあります。しかし、ls-lintはプロジェクト内にある為、ドキュメントよりも近い位置にあります
  • これを導入すればファイル、ディレクトリの命名についての議論をプルリク上でしなくて済み、より高度な議論に専念できると思います
  • 小さな改善ではありますがこのような積み重ねがよりプロダクトの価値を高められると思うので引き続き調査したいです!

本記事を読んで頂き、ありがとうございました。
いいねいただけると記事執筆の励みになりますので、参考になったと思われた方は是非よろしくお願い致します🙏

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0