技術とかの雑なToday I Learnedメモ

stylelint --fixのファイル名を引数に取る、そしてただのケアレスミス

stylelint --fix の引数にファイルパスを渡してもそのファイル以外も fix された

もう再現状況とかまで調べて書く余裕がないので個人のメモ程度だからあれだけど、lint-staged.config.jsを作って拡張子ごとに実行したいコマンドを分けて書いて、そのコマンドが実行されるまでは辿り着いた。

で、eslint と stylelint を使ってそれぞれ js と css の部分に Lint をかけているんだけど、どうやら stylelint の引数にファイルパスを渡しても、そのファイル以外のファイルにもフォーマットをかけていた。

最初は eslint で上記の件が起きているのかと思ったけど、Vue の SFC ファイル(.vue ファイル)の style 部分の修正を実際に fix して見ていたので stylelint だった。

stylelint の引数ってファイル名取れないの?と思ったので確認してみた。

$ ./node_modules/stylelint/bin/stylelint.js -h

  A mighty, modern CSS linter.

  Usage: stylelint [input] [options]

  Input: Files(s), glob(s), or nothing to use stdin.

    If an input argument is wrapped in quotation marks, it will be passed to
    globby for cross-platform glob support. node_modules are always ignored.
    You can also pass no input and use stdin, instead.

Input に Files とあるのでファイルを渡すことはできそうなんだけどな。

DeepL にかけて日本語にしたんだけどよく分からなかったので GitHub のページを見にいった。

stylelint/get-started.md at master · stylelint/stylelint

つまり"**/*.css"みたいな書き方もできるよっていうことなんだろうか。

引数でファイルを指定したときにそのファイルだけ Lint/Format をかけてほしいという気持ちなんだけどな。

僕のミスでした

npm scripts で stylelint コマンドを叩いているのでそれを流用していたんだけど、そこに"**/*.{vue,css}"みたいな感じで全指定するように書いてあったわ……。

めちゃくちゃ些細なミスでした。

試しに node_modules の bin からファイル名を指定したらいけました。

こういうミス本当になくしたいな〜〜〜〜〜〜〜