text: var gulp = require('gulp');
  var csslint = require('gulp-csslint');
  var jshint = require('gulp-jshint');
  var minifyCSS = require('gulp-clean-css');
  var sass = require('gulp-sass');
  var rename = require('gulp-rename');
  var uglify = require('gulp-uglify');
  var zip = require('gulp-zip');
  
  var pkg = require('./package.json');
  var basename = pkg.name + '-' + pkg.version;
  
  // SASS compilation
  gulp.task('sass', function () {
      return gulp.src('scss/*sidebar.scss')
          .pipe(sass().on('error', sass.logError))
          .pipe(gulp.dest('css'));
  });
  
  // Lint JS + CSS
  gulp.task('lint', ['lint:js', 'lint:css']);
  
  gulp.task('lint:js', function() {
    return gulp.src('js/*sidebar.js')
      .pipe(jshint())
      .pipe(jshint.reporter());
  });
  
  gulp.task('lint:css', ['sass'], function() {
    return gulp.src('css/*sidebar.css')
      .pipe(csslint({
        'adjoining-classes': false,
        'box-sizing': false,
        'fallback-colors': false,
        'important': false,
        'order-alphabetical': false,
        'regex-selectors': false,
      }))
      .pipe(csslint.formatter());
  });
  
  // Minify JS + CSS
  gulp.task('minify', ['minify:js', 'minify:css']);
  
  gulp.task('minify:js', function() {
    return gulp.src('js/*sidebar.js')
      .pipe(rename({ suffix: '.min' }))
      .pipe(uglify())
      .pipe(gulp.dest('js'));
  });
  
  gulp.task('minify:css', ['sass'], function() {
    return gulp.src('css/*sidebar.css')
      .pipe(rename({ suffix: '.min' }))
      .pipe(minifyCSS())
      .pipe(gulp.dest('css'));
  });
  
  // Package for distribution
  gulp.task('zip', ['minify'], function() {
    return gulp.src([
      'README.md',
      'LICENSE',
      'css/*-sidebar.min.css',
      'js/*-sidebar.min.js',
    ])
    .pipe(rename(function (path) {
      path.dirname = '';
    }))
    .pipe(zip(basename + '.zip'))
    .pipe(gulp.dest('dist'));
  });
  
  // Watch JS + CSS Files
  gulp.task('watch', ['lint', 'minify'], function(){
    gulp.watch('js/leaflet-sidebar.js', ['lint:js', 'minify:js']);
    gulp.watch('scss/*.scss', ['lint:css', 'minify:css']);
  });
  
  // Default
  gulp.task('default', ['lint', 'minify']);
  