GulpでSassを変換してみる

Gulpを試してみる
の続き

Gulpでscssを変換してみる。

scssの変換

gulpとgulp-sassをインストールする。

$ npm install gulp
$ npm install gulp-sass

gulpfileを作成する。

$ vi gulpfile.js
var gulp = require("gulp");
var sass = require("gulp-sass");

gulp.task("sass", function () {
  gulp.src("./scss/**/*.scss")
    .pipe(sass().on("error", sass.logError))
    .pipe(gulp.dest("./css"));
});

ディレクトリを作って、

$ mkdir css
$ mkdir scss

sample.scssを用意する

$ vi scss/sample.scss
$color: #f00;
h1 {
  color: $color;
}

実行すると

$ gulp sass

変換されたcssが作成される。

$ cat css/sample.css
h1 {
  color: #f00; }

CSSの圧縮

ついでにCSSを圧縮し、ファイル名を変更してみる。

圧縮するためにcssmin、ファイル名を変換するためにrename、をインストールする。

$ npm install gulp-cssmin
$ npm install gulp-rename

gulpfileを下記のように修正し、

$ vi gulpfile.js
var gulp = require("gulp");
var sass = require("gulp-sass");
var cssmin = require("gulp-cssmin");
var rename = require("gulp-rename");

gulp.task("sass", function () {
  gulp.src("./scss/**/*.scss")
    .pipe(sass().on("error", sass.logError))
    .pipe(cssmin())
    .pipe(rename({ extname: '.min.css' }))
    .pipe(gulp.dest("./css"));
});

実行すると、

$ gulp sass

圧縮されたファイルが作成される。

$ cat css/sample.min.css
h1{color:red}