Skip to content

Instantly share code, notes, and snippets.

@rupl
Last active September 25, 2019 15:13
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rupl/153282c6d80f57b9eebf to your computer and use it in GitHub Desktop.
Save rupl/153282c6d80f57b9eebf to your computer and use it in GitHub Desktop.
Sample Gulp setup. Watches JS to JSHint, watches two themes for Sass+Compass compilation.
/**
* @file
* Gulpfile that controls frontend development tasks. Just the basics!
*
* Installation: type `npm install` in your console.
* Usage: type `gulp` in your console.
*/
/* jslint node: true */
'use strict';
// Declare dependencies
var gulp = require('gulp');
var compass = require('gulp-compass');
var jshint = require('gulp-jshint');
var prefix = require('gulp-autoprefixer');
// Task: Compass - theme_one
gulp.task('compass-theme_one', function() {
gulp.src('sites/all/themes/theme_one/sass/*.scss')
.pipe(compass({
bundle_exec: true,
config_file: 'sites/all/themes/theme_one/config.rb',
css: 'sites/all/themes/theme_one/css',
sass: 'sites/all/themes/theme_one/sass',
image: 'sites/all/themes/theme_one/img'
}))
.pipe(prefix("last 2 versions", "> 1%"))
.pipe(gulp.dest('sites/all/themes/theme_one/css'));
});
// Task: Compass - theme_two
gulp.task('compass-theme_two', function() {
gulp.src('sites/all/themes/theme_two/sass/*.scss')
.pipe(compass({
bundle_exec: true,
config_file: 'sites/all/themes/theme_two/config.rb',
css: 'sites/all/themes/theme_two/css',
sass: 'sites/all/themes/theme_two/sass',
image: 'sites/all/themes/theme_two/img'
}))
.pipe(prefix("last 2 versions", "> 1%"))
.pipe(gulp.dest('sites/all/themes/theme_two/css'));
});
// Task: JSHint
gulp.task('lint', function() {
gulp.src('sites/all/**/js/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
// Task: Watch
gulp.task('watch', ['compass-theme_one', 'compass-theme_two', 'lint'], function () {
gulp.watch(['sites/all/themes/theme_one/sass/**/*.scss'], ['compass-theme_one']);
gulp.watch(['sites/all/themes/theme_two/sass/**/*.scss'], ['compass-theme_two']);
gulp.watch(['sites/all/**/*.js'], ['lint']);
});
// Default: Watch
gulp.task('default', ['watch']);
{
"name": "gulp-sample-setup",
"description": "Sample Gulp setup",
"version": "0.X.0",
"dependencies": {},
"devDependencies": {
"gulp": "~3.8.0",
"gulp-autoprefixer": "0.0.7",
"gulp-compass": "^1.1.9",
"gulp-jshint": "^1.6.2"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment