111 lines
3 KiB
JavaScript
111 lines
3 KiB
JavaScript
var gulp = require('gulp'),
|
|
sass = require('gulp-sass'),
|
|
rename = require('gulp-rename'),
|
|
cssmin = require('gulp-minify-css'),
|
|
concat = require('gulp-concat'),
|
|
uglify = require('gulp-uglify'),
|
|
cache = require('gulp-cached'),
|
|
prefix = require('gulp-autoprefixer'),
|
|
browserSync = require('browser-sync'),
|
|
reload = browserSync.reload,
|
|
size = require('gulp-size'),
|
|
imagemin = require('gulp-imagemin'),
|
|
minifyHTML = require('gulp-minify-html'),
|
|
pngquant = require('imagemin-pngquant'),
|
|
plumber = require('gulp-plumber'),
|
|
deploy = require('gulp-gh-pages'),
|
|
notify = require('gulp-notify'),
|
|
sassLint = require('gulp-sass-lint'),
|
|
twig = require('gulp-twig');
|
|
|
|
|
|
gulp.task('lib-scss', function() {
|
|
var onError = function(err) {
|
|
notify.onError({
|
|
title: "Gulp",
|
|
subtitle: "Failure!",
|
|
message: "Error: <%= error.message %>",
|
|
sound: "Beep"
|
|
})(err);
|
|
this.emit('end');
|
|
};
|
|
|
|
return gulp.src('source/scss/**/*.scss')
|
|
.pipe(plumber({errorHandler: onError}))
|
|
.pipe(sass())
|
|
.pipe(size({ gzip: true, showFiles: true }))
|
|
.pipe(prefix())
|
|
.pipe(gulp.dest('source/css'))
|
|
.pipe(reload({stream:true}))
|
|
.pipe(cssmin())
|
|
.pipe(size({ gzip: true, showFiles: true }))
|
|
.pipe(rename({ suffix: '.min' }))
|
|
.pipe(gulp.dest('source/css'))
|
|
.pipe(gulp.dest('site/css'));
|
|
});
|
|
|
|
gulp.task('site-scss', function() {
|
|
var onError = function(err) {
|
|
notify.onError({
|
|
title: "Gulp",
|
|
subtitle: "Failure!",
|
|
message: "Error: <%= error.message %>",
|
|
sound: "Beep"
|
|
})(err);
|
|
this.emit('end');
|
|
};
|
|
|
|
return gulp.src('site/scss/**/*.scss')
|
|
.pipe(plumber({errorHandler: onError}))
|
|
.pipe(sass())
|
|
.pipe(size({ gzip: true, showFiles: true }))
|
|
.pipe(prefix())
|
|
.pipe(gulp.dest('site/css'))
|
|
.pipe(reload({stream:true}))
|
|
.pipe(cssmin())
|
|
.pipe(size({ gzip: true, showFiles: true }))
|
|
.pipe(rename({ suffix: '.min' }))
|
|
.pipe(gulp.dest('site/css'));
|
|
});
|
|
|
|
gulp.task('browser-sync', function() {
|
|
browserSync({
|
|
server: {
|
|
baseDir: "site"
|
|
}
|
|
});
|
|
});
|
|
|
|
gulp.task('deploy', function () {
|
|
return gulp.src('site/**/*')
|
|
.pipe(deploy());
|
|
});
|
|
|
|
gulp.task('sass-lint', function () {
|
|
gulp.src('scss/**/*.scss')
|
|
.pipe(sassLint())
|
|
.pipe(sassLint.format())
|
|
.pipe(sassLint.failOnError());
|
|
});
|
|
|
|
gulp.task('twig', function () {
|
|
gulp.src('site/**/*.twig', {base: './'})
|
|
.pipe(twig())
|
|
.pipe(gulp.dest('./'));
|
|
});
|
|
|
|
|
|
gulp.task('watch', function() {
|
|
gulp.watch('source/scss/**/*.scss', ['lib-scss', 'site-scss', 'sass-lint']);
|
|
gulp.watch('source/scss/**/*.html', ['minify-html']);
|
|
gulp.watch('site/**/*.twig', ['twig']);
|
|
});
|
|
|
|
|
|
gulp.task('jshint', function() {
|
|
gulp.src('js/*.js')
|
|
.pipe(jshint())
|
|
.pipe(jshint.reporter('default'));
|
|
});
|
|
|
|
gulp.task('default', ['browser-sync', 'twig', 'lib-scss', 'site-scss', 'watch']);
|