Cover Image for Sass のリンター/フォーマッターは Stylelint だけで良いのかもしれない

Sass のリンター/フォーマッターは Stylelint だけで良いのかもしれない

 

きれいな Sass を書くために、Stylelint + Prettier の組み合わせがよく紹介されていますが、改めて設定してみると「Sass は Stylelint にお任せで十分かも」と思ったので、導入・設定メモを残しておきます。

環境

  • macOS 13.3.1
  • VS Code 1.78.0
  • yarn 1.22.19

yarn でのインストール

Stylelint とルールセットを yarn でプロジェクトディレクトリに追加します。今回は CSS プロパティも自動的に並び替えて欲しいので、Twitter Bootstrap の SCSS ルールセットも追加します。

  • Stylelint
  • ルールセットを 2 つ
    • stylelint-config-standard-scss
    • stylelint-config-twbs-bootstrap
yarn add -D stylelint stylelint-config-standard-scss stylelint-config-twbs-bootstrap

Stylelint は 14.14.1 がインストールされました。

yarn stylelint -v
14.14.1

VS Code の拡張機能をインストール

Stylelint 公式の拡張機能をインストールします。タキシードが・とても・すてきだ。

❯ code --install-extension stylelint.vscode-stylelint

Stylelint の設定ファイルを追加

プロジェクトディレクトリ直下( = package.json と同じ階層) に .stylelintrc を作成し、json で利用するルールセットを指定します。

.stylelintrc
{
  "extends": [
    "stylelint-config-twbs-bootstrap",
    "stylelint-config-standard-scss"
  ]
}

VS Code の設定ファイルを調整

  • VS Code の SCSS のリンターを無効にする
  • VS Code の CSS のリンターを無効にする
  • 拡張子 .scss が Stylelint の対象になるように追加
  • ファイル保存時に自動整形する
  • .scss のフォーマッターを Stylelint にする ( Prettier との競合を回避 )

※ Stylelint に関係する項目のみ抽出しています。

.vscode/settings.json
{
  "scss.validate": false,
  "css.validate": false,
  "stylelint.snippet": ["scss"],
  "stylelint.validate": ["scss"],
  "editor.codeActionsOnSave": {
    "source.fixAll.stylelint": true
  },
  "[scss]": {
    "editor.defaultFormatter": "stylelint.vscode-stylelint"
  },
}

動作確認

めためたなインデント・プロパティ名の typo・不正な単位・大文字の混入を含めて、リンターが指摘してくれるか検証します。

.sample {
pading: 0pxl 0.25rem 0 0;
  line-height: 1;font-size: 10px;
    display: block;
margin: 0 1rem 0 0;
i  {
    font-SIZE: 2rem;
   }
}

↓ エラーを修正し、保存。プロパティの並び替え・小文字への置換・インデントの調整などが自動的に行われることを確認します。

.sample {
  display: block;
  padding: 0 0.25rem 0 0;
  margin: 0 1rem 0 0;
  font-size: 10px;
  line-height: 1;

  i {
    font-size: 2rem;
  }
}

とても・きれいで・気持ちが・いい。

目次