Skip to content

Instantly share code, notes, and snippets.

@jehoshua02
Created June 24, 2014 22:42
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jehoshua02/c6f5b72a283e92d73daa to your computer and use it in GitHub Desktop.
Save jehoshua02/c6f5b72a283e92d73daa to your computer and use it in GitHub Desktop.
Compile Sass and generate KSS docs with Gulp.

Setting up Gulp to compile Sass and build KSS docs

Install dependencies:

npm install --save-dev gulp gulp-sass gulp-kss gulp-concat gulp-clean

This will add devDependencies to your package.json that looks like this:

{
  "name": "example-scss-kss",
  "description": "Example scss/kss project.",
  "devDependencies": {
    "gulp-kss": "0.0.2",
    "gulp-sass": "^0.7.2",
    "gulp-concat": "^2.2.0",
    "gulp-clean": "^0.3.0"
  }
}

Then you need to make a gulpfile.js like this:

var gulp = require('gulp');
var gulpsass = require('gulp-sass');
var gulpkss = require('gulp-kss');
var gulpconcat = require('gulp-concat');
var gulpclean = require('gulp-clean');

gulp.task('default', ['sass', 'kss']);

gulp.task('watch', function() {
  gulp.watch(['./src/kss/*'], ['kss']);
  gulp.watch(['./src/scss/*.scss'], ['sass', 'kss']);
});

gulp.task('sass', function() {
  return gulp.src('./src/scss/styles.scss')
    .pipe(gulpsass())
    .pipe(gulp.dest('./dist'));
});

gulp.task('kss-clean', function () {
  return gulp.src('./dist/docs')
    .pipe(gulpclean());
});

gulp.task('kss', ['sass', 'kss-clean'], function () {
  // generate docs
  gulp.src(['./src/scss/*.scss'])
    .pipe(gulpkss({ overview: './src/docs/index.md' }))
    .pipe(gulp.dest('./dist/docs'));

  // copy styles.css for docs
  gulp.src('./dist/styles.css')
    .pipe(gulpconcat('style.css'))
    .pipe(gulp.dest('./dist/docs/public'));
});

Then just run gulp watch to rebuild as you modify files. You can also run gulp build to just build one time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment