18.06.2017
Содержимое файла gulpfile.js
для рабочей папки app с билдом в папку dist:
var gulp = require('gulp'), sass = require('gulp-sass'), browserSync = require('browser-sync'), concat = require('gulp-concat'), uglify = require('gulp-uglifyjs'), cssnano = require('gulp-cssnano'), rename = require('gulp-rename'), del = require('del'), imagemin = require('gulp-imagemin'), pngquant = require('imagemin-pngquant'), cache = require('gulp-cache'), autoprefixer = require('gulp-autoprefixer'); gulp.task('sass', function() { return gulp.src('app/sass/**/*.sass') .pipe(sass()) .pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], {cascade: true})) .pipe(gulp.dest('app/css')) .pipe(browserSync.reload({stream: true})) }); gulp.task('scripts', function() { return gulp.src([ 'app/libs/jquery/dist/jquery.min.js', 'app/libs/magnific-popup/dist/jquery.magnific-popup.min.js' ]) .pipe(concat('libs.min.js')) .pipe(uglify()) .pipe(gulp.dest('app/js')); }); gulp.task('css-libs', ['sass'], function() { return gulp.src('app/css/libs.css') .pipe(cssnano()) .pipe(rename({suffix: '.min'})) .pipe(gulp.dest('app/css')); }) gulp.task('browser-sync', function() { browserSync({ server: { baseDir: 'app' }, notify: false }); }); gulp.task('clean', function() { return del.sync('dist'); }); gulp.task('clear', function() { return cache.clearAll(); }); gulp.task('img', function() { return gulp.src('app/img/**/*') .pipe(cache(imagemin({ interlaced: true, progressive: true, svgoPlugins: [{removeViewBox: false}], use: [pngquant()] }))) .pipe(gulp.dest('dist/img')); }); gulp.task('watch', ['browser-sync', 'css-libs', 'scripts'], function() { gulp.watch('app/sass/**/*.sass', ['sass']); gulp.watch('app/*.html', browserSync.reload); gulp.watch('app/js/**/*.js', browserSync.reload); }); gulp.task('build', ['clean', 'img', 'sass', 'scripts'], function() { var buildCss = gulp.src([ 'app/css/main.css', 'app/css/libs.min.css' ]) .pipe(gulp.dest('dist/css')); var buildFonts = gulp.src('app/fonts/**/*') .pipe(gulp.dest('dist/fonts')); var buildJs = gulp.src('app/js/**/*') .pipe(gulp.dest('dist/js')); var buildHtml = gulp.src('app/*.html') .pipe(gulp.dest('dist')); });
Содержимое файла gulpfile.js
для рабочей папки app без билда:
var gulp = require('gulp'), sass = require('gulp-sass'), autoprefixer = require('gulp-autoprefixer'), cleanCSS = require('gulp-clean-css'), rename = require('gulp-rename'), browserSync = require('browser-sync').create(), concat = require('gulp-concat'), uglify = require('gulp-uglify'); gulp.task('browser-sync', ['styles', 'scripts'], function() { browserSync.init({ server: { baseDir: "./app" }, notify: false }); }); gulp.task('styles', function () { return gulp.src('sass/*.sass') .pipe(sass({ includePaths: require('node-bourbon').includePaths }).on('error', sass.logError)) .pipe(rename({suffix: '.min', prefix : ''})) .pipe(autoprefixer({browsers: ['last 15 versions'], cascade: false})) .pipe(cleanCSS()) .pipe(gulp.dest('app/css')) .pipe(browserSync.stream()); }); gulp.task('scripts', function() { return gulp.src([ './app/libs/modernizr/modernizr.js', './app/libs/jquery/jquery-1.11.2.min.js', './app/libs/waypoints/waypoints.min.js', './app/libs/animate/animate-css.js', ]) .pipe(concat('libs.js')) // .pipe(uglify()) //Minify libs.js .pipe(gulp.dest('./app/js/')); }); gulp.task('watch', function () { gulp.watch('sass/*.sass', ['styles']); gulp.watch('app/libs/**/*.js', ['scripts']); gulp.watch('app/js/*.js').on("change", browserSync.reload); gulp.watch('app/*.html').on('change', browserSync.reload); }); gulp.task('default', ['browser-sync', 'watch']);