// include gulp var gulp = require('gulp'); // and packages var concat = require('gulp-concat'); var uglify = require('gulp-uglify'); var sourcemaps = require('gulp-sourcemaps'); var sass = require('gulp-sass'); var rename = require('gulp-rename'); var shell = require('gulp-shell'); var cleancss = require('gulp-clean-css'); var postcss = require('gulp-postcss'); var autoprefixer = require('autoprefixer'); var include = require('gulp-include'); var browsersync = require('browser-sync').create(); var lec = require('gulp-line-ending-corrector'); //var livereload = require( 'gulp-livereload' ); // Browsersync options const syncOpts = { proxy: '127.0.0.1/wordpress4.8/', files: '**/*', open: false, notify: false, ghostMode: false, ui: { port: 8001 } }; // dependency dir var dependencyDir = 'assets/source'; // source of sass files var sassDir = 'source/sass'; // source of js files var jsDir = 'source/js'; // directory where sass compile to var targetCSSDir = 'assets/css/'; // directory where js compile to var targetJSDir = 'assets/js'; // tasks --------------------------------------------------------------------------- gulp.task('kss', shell.task(['npm run kss-scheibo'])); // compile sass gulp.task('sass', function () { return gulp.src([sassDir + '/*.scss']) .pipe(sourcemaps.init()) .pipe(sass()) .pipe(postcss([autoprefixer()])) .pipe(lec({verbose: true, eolc: 'LF', encoding: 'utf8'})) .pipe(gulp.dest(targetCSSDir + '/full')); }); gulp.task('minify-css', function () { return gulp.src([targetCSSDir + '/full/*.css']) .pipe(cleancss()) .pipe(rename({suffix: '.min'})) .pipe(gulp.dest(targetCSSDir)); } ); // generate js gulp.task('scripts', function () { return gulp.src(jsDir + '/*.js') .pipe(include()) //.pipe( uglify() ) .pipe(gulp.dest(targetJSDir + '/full')); }); // minify scripts gulp.task('scripts-minify', function () { return gulp.src([targetJSDir + '/full/main.js', targetJSDir + '/full/primary-navigation.js', targetJSDir + '/full/responsive-embeds.js' ]) .pipe(uglify()) .pipe(rename({suffix: '.min'})) .pipe(gulp.dest(targetJSDir)); }); // add browser sync task gulp.task('browsersync', function () { browsersync.init(syncOpts); }); // watch files for changes gulp.task('watch', ['browsersync', 'sass', 'minify-css', 'scripts', 'scripts-minify'], function () { gulp.watch([sassDir + '/*.scss', sassDir + '/**/*.scss', sassDir + '/**/**/*.scss', sassDir + '/**/**/**/*.scss'], ['sass']); gulp.watch(jsDir + '/*.js', ['scripts']); }); gulp.task('default', ['sass', 'minify-css', 'scripts-minify', 'scripts', 'watch']);