var gulp = require('gulp'); var sass = require('gulp-sass'); var autoprefixer = require('gulp-autoprefixer'); var cleanCSS = require('gulp-clean-css'); var eslint = require('gulp-eslint'); var uglify = require('gulp-uglify'); var rename = require('gulp-rename'); var gutil = require('gulp-util'); var browserSync = require('browser-sync').create(); gulp.task('browser-sync', function() { browserSync.init({ server: './' }); }); gulp.task('styles', function() { return gulp.src('src/**/*.scss') .pipe(sass()) .pipe(autoprefixer()) .pipe(cleanCSS({compatibility: 'ie8'})) .pipe(rename({extname: '.min.css'})) .pipe(gulp.dest('./dist')) .pipe(gulp.dest('./docs/css')) .pipe(browserSync.stream()); }); gulp.task('scripts', function() { return gulp.src('src/timeline.js') .pipe(uglify({output: {comments: '/^!/'}})) .on('error', function (err) { gutil.log(gutil.colors.red('[Error]'), err.toString()); }) .pipe(rename({extname: '.min.js'})) .pipe(gulp.dest('./dist')) .pipe(gulp.dest('./docs/js')) .pipe(browserSync.stream()); }); gulp.task('eslint', function() { return gulp.src('src/timeline.js') .pipe(eslint({useEslintrc: true})) .pipe(eslint.format()) .pipe(eslint.failAfterError()); //.pipe(gulp.dest('./dist')) //.pipe(browserSync.stream()); }); gulp.task('default', function() { browserSync.init({ server: './' }); gulp.watch('src/timeline.js',['eslint','scripts']); gulp.watch('src/**/*.scss',['styles']); });