【stylelint-plusが最適解!?】VSCodeでcssのプロパティをソートする拡張比較!

おすすめのオンラインプログラミング学習

「cssのプロパティをソートする拡張」や「プログラミングを整形する拡張」はいろいろありますので、覚書がてら、いろいろとまとめて紹介します。

後半はその中でも使い勝手がよさそうなstylelint-plusの使い方を紹介しています。個人的にはWordpressのブログ運営もJavascript系のnuxtもstylelint-plusを現在利用しています。

CSSの並び順

以前は下記のようなサイトを参考にしながら手動で並べていたのですが、今は自動で楽になったものです。考え方自体は今でも参考になるところがあります。

順番に関する基本的な解説はこちらがわかりやすく

【CSS】CSSプロパティの記述順について考えてみた | unitopi - ユニトピ -
こんにちは! 新米ライターのケインでございます。 前回の記事で予告した通り、今回は「CSSのプロパティ記述順」についてお話致します。 CSSプロパティ記述順の公式ルールは存在する? CSSプロパティの記述順については、厳密に定義されたルールは存在しません。 ですが、推奨記述順に関するガイドラインというのは、FireFo...

実際にプロパティの順番をリスト化したものは、qiitaあたりがわかりやすいかも。FireFoxのMozilaさんがリンク切れしていたので。

CSSプロパティ記述順序 - Qiita
abc順やcss combなどプロパティの記述順序は様々だとおもいますが、自分はこれでやってます。 content.css /* Sugge...

「視覚整形モデル」はdisplayなどの表示とpositonなどの配置を分けていたところもありましたね。どこのサイトも大差はありません。

スポンサーリンク

電子書籍のおすすめ比較

【おすすめは?】vs codeで整形する拡張比較

【CSScomb、CSS Formatter】VS Codeでcssのプロパティをソートする拡張比較!

昔オンラインで少しお世話になった、cssのプロパティをソートするCSScombが利用できなくなっていました。ブログ運営するにあたり、たまたまcssを少し書く機会がありました。

現在、VS Codeを利用しているため、そちらで拡張を入れることにしました。

VS Codeにも実はCSScombの拡張はありますし、Stack OverflowのVisual studio code CSS indentation and formattingに紹介されていたCSS Formatterもあります。

CSScombはちょっとだけ使ったとこころ軽く設定してF1キーで並べ替えできました。デフォルト設定は下記でいけます。

Can be built-in config (csscomb, zen, or yandex), path to a config file, or an object containing custom configuration.

ただ、自分が好きなように並べ替えしたいときはは別途対応が必要です。

しかし、cssだけではなく、もう少し応用が効く方がいいだろうということでStylelintを採用しました。正確にはStylelint Plusを採用。

stylelint-plus – Visual Studio Marketplace

下記の言語に対応しています。

CSS (css)
HTML (html)
Less (less)
JavaScript (javascript)
JavaScript React (javascriptreact)
Markdown (markdown)
Markdown+MathML (source.markdown.math)
PostCSS (postcss)
Sass (sass)
SCSS (scss)
styled-components
Official (source.css.styled)
Userland (styled-css)
Sugarss (sugarss)
Svelte (svelte)
TypeScript (typescript)
TypeScript React (typescriptreact)
Vue (vue, vue-html, vue-postcss)
XML (xml)
XSL (xsl)

整形だけではなく、警告してくれます。

ESLint、Stylelint、Prettier(ブログ運用の場合)

ESLintとStylelint、Prettierは組み合わせて使う紹介をされているサイトが多いですが、とりあえず、stylelint-plusだけを使いました。

拡張もあります。

ESLint – Visual Studio Marketplace

Prettier – Code formatter – Visual Studio Marketplace

codepenで書いたcssをある程度思った通りにも並べ替えしたかっただけなので。あと、あまりごちゃごちゃしたくなかったです。

Prettierはインストールせず様子見しようと思いますが、便利そうではあるので必要があれば、追加インストールします。

vue.jsですが、eslintもprettierなしでやっている方もいるようです。

もうprettierで消耗したくない人へのvueでのeslint設定 - Qiita
タイトル通り。vscodeとvuejsを使ってのlintの設定をprettierなしでやってみた。 tl;dr 対象ファイルとpackage.jsonと.eslintrc.jsの対応表👇 構文チェック・自動フォーマット対...

ESLint、Stylelint、Prettier(javascript/nuxtの場合)

(後日談を追記)javascript系の言語を使うなら、eslintとprettierが必要かもしれませんよね。

cssの並べ替え問題とは別に、Vue.jsを使った際に再検討しました。

Vue.js アプリケーションを構築するためのフレームワークNuxt.jsまで一気に導入を進めました。

パフォーマンスがよさそうなことが主な理由ですが、こちらはNuxt.jsをインストールする際に、ESLint, Prettierのオプションをつけられるメリットもありました。オプションをつけると、下記のようなことをやる必要がありません。なぜって最初にインストールしているから。

npm install --save-dev babel-eslint eslint eslint-config-prettier eslint-loader eslint-plugin-vue eslint-plugin-prettier prettier

さくっとプロジェクトを作成し、npm run lintで使えますよ。

なお拡張機能はインストールしていません。

Autoprefixer、Beautify

他にもベンダープレフィックスが必要なものをつけてくれるAutoprefixer。

Autoprefixer – Visual Studio Marketplace

Beautifyもあります。

Beautify – Visual Studio Marketplace

VisualStudioCodeの自動整形機能

VisualStudioCode自体にも自動整形機能があるようですね。

VisualStudioCodeに自動整形機能があった - Qiita
Visual Studio CodeでTypeScriptを書いていて自動整形が欲しくなったので調べたら、 見つかったのでメモ 追記 2018/06/11 同じ設定項目があるのを確認 2019/03/09 いろいろ変わっていたので書...

vscodeでunityの整形【おまけ】

ついでに、C#の整形ツールも見つけました。unityユーザーはこちらも。

C# FixFormat - Visual Studio Marketplace
Extension for Visual Studio Code - Fix format of usings / indents / braces / empty lines

全部、vscodeで統一できるから嬉しいですね。

CSSのオンライン版の整形

オンライン版はなくなってしまったのかといえば、そんなことはなくいろいろあります。cssauthorでもご覧ください。

20+ CSS Beautifier Tools Worth Trying in 2019
CSS Beautifier tools are used to beautifully format a cultured CSS code for better manageability. These tools can beautify CSS in a matter of seconds.When you a...

ただ、個人的にはもう全部vscodeにいこうしようかなっと。

stylelintとstylelint-plusの違い

保存したときに、並べ替えをするオプションがついただけのようです。

stylelint-plus - Visual Studio Marketplace
Extension for Visual Studio Code - Modern CSS/SCSS/Less linter for vscode, support auto fix on save.

最初、stylelintをインストールしてしまったため、アンインストールしてstylelint-plusをインストールしました。

この拡張をインストールするだけでcssの警告はでるようになります。…が並べ替えはできません。

スポンサーリンク

vs codeでstylelint-plusの使い方

stylelint-plusの拡張をインストール

あらかじめ、vscodeでstylelint-plusをインストールしておきます。

そして、この設定が重要です。この設定が入っていないと保存時にソートされません。

画面左のExtensions > stylelintで検索 > stylelint-plusをインストール > 歯車アイコンのConfigure Extension Setting > Stylelint: Auto Fix On Saveのチェックを入れる

アップデート時に外れたことがあったため、反映されない場合は再度確認しましょう。

npmを使ってstylelintのインストール

新規フォルダにcssファイルを作成。整形したいcssを書きます。ターミナルを使ってcdでcssファイルのある場所に移動し、必要なものをインストール。

package.jsonがすでにあるなら、ここは飛ばしましょう。

npm init -y

npm initのみだといろいろと設定しながらpackage.jsonを作成しますが、-yのオプションは初期設定せず作れます。設定不要の人には早いってことです。

stylelintをインストールします。どちらも同じ意味です。

npm i -D stylelint stylelint-config-standard
npm install stylelint stylelint-config-standard --save-dev

その場所にファイルが生成されます。生成されたnode_modulesのフォルダ直下にstylelint-config-standardなどのフォルダが追加されるようです。

stylelintのフォルダ構成とサンプル(ブログ運営の場合)

同じ場所に.stylelintrc.jsonを作成。ここまでで構成は以下のようになります。

├──node_modules
├──package.json
├──package-lock.json
├──.stylelintrc.json
├──sort.css
stylelintの設定はpackage.jsonに含めることができますが、他のプロジェクトでも使いまわせるよう独自ファイルにします。
{
  "extends": [
    "stylelint-config-standard",
    "stylelint-config-recess-order"
  ],
  "rules": {
  }
}
stylelint-config-recess-orderは後で解説します。

jsonファイルはコメントが書けないためjsファイルにしてもよいです。個人的にはjsファイルにしています。

module.exports = {
  // コメント
  extends: [
    'stylelint-config-standard',
    'stylelint-config-recess-order'
  ],
  rules: {}
}

stylelintのフォルダ構成(電子書籍の場合)

上記のブログ運営とまったく同じです。流用しました。

stylelintはmdファイルのcssも修正してくれるため、いいですね!

stylelintの設定とサンプル(nuxtの場合)

stylelint.config.jsというファイルがあるため、そこにルールを設定しましょう。

module.exports = {
  // add your custom config here
  // https://stylelint.io/user-guide/configuration
  extends: [
    'stylelint-config-standard',
    'stylelint-config-recess-order'
  ],
  plugins: [],
  rules: {}
}

CSSのプロパティをソート方法(stylelint-order)

stylelint-config-standardを入れると保存時に整形はされますが並べ替えまでうまくいくわけではありません。そのまま詰めるだけのようです。

並べ替え方法はいろいろとあります。npmのサイトをみると、stylelint-config-recess-orderはBootstrapの方法のようです。

stylelint-config-recess-order
Recess-based property sort order for Stylelint.

これも入れましょう。

npm install stylelint-config-recess-order --save-dev

.stylelintrc.jsの中身のサンプルです。stylelint-config-recess-orderがソートするものですね。

module.exports = {
  // コメント
  extends: [
    'stylelint-config-standard',
    'stylelint-config-recess-order'
  ],
  rules: {
    "prettier/prettier": "error"
  }
}

npmのサイトでstylelint-configなどで検索するといろいろとでてきます。

モジュール選定の比較記事はこちらにありました。

stylelintのorderモジュール選定 - Qiita
やりたいこと CSSのプロパティを自動ソート(reorder)したい reorderするメリット 順番を気にせず書いて楽できる スタイルの無駄な重複を防げる 読みやすくなる gzipサイズが減りやすい 使用ツール ...

個人的にはstylelint-config-recess-orderとstylelint-config-rational-orderで少し迷いましたが、stylelint-config-recess-orderを採用しました。変更は簡単なので気楽に決めましょう。

VS Codeでcssファイルを開き、保存するとソートされます。

stylelintのプロパティソートの参考サイトと公式リファイレンス

今回、主に参考にさせてもらったサイトはこちらです。

VS CodeにPrettier・ESLint・Stylelintを導入してファイル保存時にコードを自動整形させる方法 | WEMO
これまでコーディング規約とは無縁のぐちゃぐちゃコードを書いて生きてきましたが、「いい加減ちゃんとするか...」と思い、Prettier(プリティア)・ESLint・Stylelint を導入することを決意。今回は、これら3つのツールをVS Codeで使用するための手順をメモしていきます。今回やることPrettier・E...
stylelintの導入とVS Codeの設定の方法 - Qiita
追記 2019/10/09 新しいSassのモジュールシステムのための設定を追記 概要 stylelintはCSSのためのLintです。Lintツールは「コードを実行する前に明らかなバグを見つけたり、括弧やスペースの使い方...

ありがとうございました。

公式リファレンスstylelint user guideもご覧ください。

A mighty, modern style linter · stylelint
# stylelint

参考になれば幸いです。

人気記事  安いオンラインプログラミングスクールおすすめ比較
  • 無料体験あり、オンライン完結あり
  • プログラミングスクールはオンラインで格安に!
  • 電子書籍並みの価格で買える動画学習サイトも一緒に紹介!初心者から上級者向け英語コンテンツまであり。ソースコードは言語関係なしに世界共通!
スポンサーリンク
おすすめのオンラインプログラミング学習
neruをフォローする
スポンサーリンク
ebookbrain

コメント

タイトルとURLをコピーしました