// Load plugins var gulp = require('gulp'), plugins = require('gulp-load-plugins')({ camelize: true }), lr = require('tiny-lr'), server = lr(); // Styles gulp.task('styles', function() { return gulp.src('assets/styles/source/*.scss') .pipe(plugins.sass({ outputStyle: 'expanded' })) .pipe(plugins.autoprefixer('last 2 versions', 'ie 9', 'ios 6', 'android 4')) .pipe(gulp.dest('assets/styles/build')) .pipe(plugins.minifyCss({ keepSpecialComments: 1 })) .pipe(plugins.livereload(server)) .pipe(gulp.dest('./')) .pipe(plugins.notify({ message: 'Styles task complete' })); }); // EDD Styles gulp.task('edd', function() { return gulp.src('assets/styles/source/edd-styles.*') .pipe(plugins.sass({ outputStyle: 'expanded' })) .pipe(plugins.autoprefixer('last 2 versions', 'ie 9', 'ios 6', 'android 4')) .pipe(gulp.dest('assets/styles/build')) .pipe(plugins.minifyCss({ keepSpecialComments: 1 })) .pipe(plugins.livereload(server)) .pipe(gulp.dest('./')) .pipe(plugins.notify({ message: 'EDD Styles task complete' })); }); // Vendor Plugin Scripts gulp.task('plugins', function() { return gulp.src(['assets/js/source/plugins.js', 'assets/js/vendor/*.js']) .pipe(plugins.concat('plugins.js')) .pipe(gulp.dest('assets/js/build')) .pipe(plugins.rename({ suffix: '.min' })) .pipe(plugins.uglify()) .pipe(plugins.livereload(server)) .pipe(gulp.dest('assets/js')) .pipe(plugins.notify({ message: 'Scripts task complete' })); }); // Site Scripts gulp.task('scripts', function() { return gulp.src(['assets/js/source/*.js', '!assets/js/source/plugins.js']) .pipe(plugins.jshint('.jshintrc')) .pipe(plugins.jshint.reporter('default')) .pipe(plugins.concat('main.js')) .pipe(gulp.dest('assets/js/build')) .pipe(plugins.rename({ suffix: '.min' })) .pipe(plugins.uglify()) .pipe(plugins.livereload(server)) .pipe(gulp.dest('assets/js')) .pipe(plugins.notify({ message: 'Scripts task complete' })); }); // Images gulp.task('images', function() { return gulp.src('assets/images/**/*') .pipe(plugins.cache(plugins.imagemin({ optimizationLevel: 7, progressive: true, interlaced: true }))) .pipe(plugins.livereload(server)) .pipe(gulp.dest('assets/images')) .pipe(plugins.notify({ message: 'Images task complete' })); }); // PHP gulp.task('php', function () { watch({glob:['.php','template-parts/.php']}) .pipe(plugins.livereload(server)) .pipe(plugins.notify({ message: 'PHP task complete' })); }); // Watch gulp.task('watch', function() { // Listen on port 35729 server.listen(35729, function (err) { if (err) { return console.log(err) }; // Watch .scss files gulp.watch('assets/styles/source/**/*.scss', ['styles', 'edd']); // Watch .js files gulp.watch('assets/js/**/*.js', ['plugins', 'scripts']); // Watch image files gulp.watch('assets/images/**/*', ['images']); // Watch image files gulp.watch(['php']); }); }); // Default task gulp.task('default', ['styles', 'edd', 'plugins', 'scripts', 'images', 'php', 'watch']);