エディタなどにあるcssの検証ツールでESLintなどのnpmでないかなと思っていたらstylelintツールがいい感じだったのでメモ。
参照
インストール
nodeをインストール自分の場合はv10.15.0
# パッケージをインストール
npm i -D stylelint
これでstylelintでcssで検証できるがscssや公式のおすすめの設定をインストール
npm i -D stylelint-config-recommended stylelint-scss stylelint-config-recommended-scss
設定ファイル作成
package.json
{
"scripts": {
"lint:scss": "stylelint \**/*.scss\"",
}
}
stylelintの設定ファイルを作成
.stylelintrcファイルを作成。形式はjs、json、yamlでできる。自分はeslintと合わせるたたま.stylelintrc.jsonただコメントをいれるとjsファイルがいいかもと思ってみたり
ルールは公式を参照(すごく多い)
- "color-hex-case": "lower"はcolorは小文字
- "color-hex-length": "short"はcolorは16進色には短い表記
{
"extends": [
"stylelint-config-recommended",
"stylelint-config-recommended-scss"
],
"rules": {
"color-hex-case": "lower",
"color-hex-length": "short"
}
}
動かしてみる
テスト用にエラーのscssファイルを作成
.sample {
background-color: #aaa;
color: #FFFFFF;
}
.sample {
background-color: #aaa;
color: #FFFFFF;
opacity: 0.5;
}
npm run lint:scss
# 出力結果
3:10 × Expected "#FFFFFF" to be "#ffffff" color-hex-case
3:10 × Expected "#FFFFFF" to be "#FFF" color-hex-length
6:1 × Unexpected duplicate selector ".sample", no-duplicate-selecto
rs
first used at line 1
8:10 × Expected "#FFFFFF" to be "#ffffff" color-hex-case
8:10 × Expected "#FFFFFF" to be "#FFF" color-hex-length