Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2019
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var gulp = require('gulp');
  2. var browserSync = require('browser-sync');
  3. var sass = require('gulp-sass');
  4. var sourcemaps = require('gulp-sourcemaps');
  5. var autoprefixer = require('gulp-autoprefixer');
  6. var cleanCSS = require('gulp-clean-css');
  7. var uglify = require('gulp-uglify');
  8. var concat = require('gulp-concat');
  9. var imagemin = require('gulp-imagemin');
  10. var changed = require('gulp-changed');
  11. var htmlReplace = require('gulp-html-replace');
  12. var htmlMin = require('gulp-htmlmin');
  13. var del = require('del');
  14. var sequence = require('run-sequence');
  15.  
  16. var config = {
  17.   dist: 'dist/',
  18.   src: 'src/',
  19.   cssin: 'src/css/**/*.css',
  20.   jsin: 'src/js/**/*.js',
  21.   imgin: 'src/img/**/*.{jpg,jpeg,png,gif}',
  22.   htmlin: 'src/*.html',
  23.   scssin: 'src/scss/**/*.scss',
  24.   cssout: 'dist/css/',
  25.   jsout: 'dist/js/',
  26.   imgout: 'dist/img/',
  27.   htmlout: 'dist/',
  28.   scssout: 'src/css/',
  29.   cssoutname: 'style.css',
  30.   jsoutname: 'script.js',
  31.   cssreplaceout: 'css/style.css',
  32.   jsreplaceout: 'js/script.js'
  33. };
  34.  
  35. gulp.task('reload', function() {
  36.   browserSync.reload();
  37. });
  38.  
  39. gulp.task('serve', ['sass'], function() {
  40.   browserSync({
  41.     server: config.src
  42.   });
  43.  
  44.   gulp.watch([config.htmlin, config.jsin], ['reload']);
  45.   gulp.watch(config.scssin, ['sass']);
  46. });
  47.  
  48. gulp.task('sass', function() {
  49.   return gulp.src(config.scssin)
  50.     .pipe(sourcemaps.init())
  51.     .pipe(sass().on('error', sass.logError))
  52.     .pipe(autoprefixer({
  53.       browsers: ['last 3 versions']
  54.     }))
  55.     .pipe(sourcemaps.write())
  56.     .pipe(gulp.dest(config.scssout))
  57.     .pipe(browserSync.stream());
  58. });
  59.  
  60. gulp.task('css', function() {
  61.   return gulp.src(config.cssin)
  62.     .pipe(concat(config.cssoutname))
  63.     .pipe(cleanCSS())
  64.     .pipe(gulp.dest(config.cssout));
  65. });
  66.  
  67. gulp.task('js', function() {
  68.   return gulp.src(config.jsin)
  69.     .pipe(concat(config.jsoutname))
  70.     .pipe(uglify())
  71.     .pipe(gulp.dest(config.jsout));
  72. });
  73.  
  74. gulp.task('img', function() {
  75.   return gulp.src(config.imgin)
  76.     .pipe(changed(config.imgout))
  77.     .pipe(imagemin())
  78.     .pipe(gulp.dest(config.imgout));
  79. });
  80.  
  81. gulp.task('html', function() {
  82.   return gulp.src(config.htmlin)
  83.     .pipe(htmlReplace({
  84.       'css': config.cssreplaceout,
  85.       'js': config.jsreplaceout
  86.     }))
  87.     .pipe(htmlMin({
  88.       sortAttributes: true,
  89.       sortClassName: true,
  90.       collapseWhitespace: true
  91.     }))
  92.     .pipe(gulp.dest(config.dist))
  93. });
  94.  
  95. gulp.task('clean', function() {
  96.   return del([config.dist]);
  97. });
  98.  
  99. gulp.task('build', function() {
  100.   sequence('clean', ['html', 'js', 'css', 'img']);
  101. });
  102.  
  103. gulp.task('default', ['serve']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement