本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。
CSSの並び順にこだわる人もいるので、コンパイル時にルールに沿って出力するように対応した。基本的に一人で対応しているけれど、コンパイル後のCSSファイルを他者がいじることもあるだろうから対応してみた。
postcssとcss-declaration-sorterをインストール
npm install -D gulp-postcss css-declaration-sorter
gulpfile.jsに下記を追記。
const postcss = require('gulp-postcss'); const cssDeclarationSorter = require('css-declaration-sorter');
.pipe(postcss([ cssDeclarationSorter({order: 'smacss'}) // 'alphabetical', 'smacss', 'concentric-css'のいずれかを選択 ]))
こんな感じ(一部抜粋)。
const postcss = require('gulp-postcss'); const cssDeclarationSorter = require('css-declaration-sorter'); // sassコンパイル gulp.task('sass', (done) => { gulp.src('draft/sass/**/*.scss') .pipe(sass({ outputStyle: 'expanded' }) ) .on("error", sass.logError) .pipe(postcss([ cssDeclarationSorter({order: 'smacss'}) // 'alphabetical', 'smacss', 'concentric-css'のいずれかを選択 ])) .pipe(gulp.dest('draft/css')); done(); });
ソート順は好みでよいと思うけど「alphabetical(アルファベット順)」はないかな。