Advertisement
Guest User

Untitled

a guest
Oct 16th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. var gulp = require('gulp');
  4. var rename = require('gulp-rename');
  5. var sass = require('gulp-sass');
  6. var autoprefixer = require('gulp-autoprefixer');
  7.  
  8. var minifyCSS = require('gulp-minify-css');
  9. var imagemin = require('gulp-imagemin');
  10. var uglify = require('gulp-uglify');
  11.  
  12. var svgmin = require('gulp-svgmin');
  13. var svgstore = require('gulp-svgstore');
  14. var cheerio = require('gulp-cheerio');
  15.  
  16. var clean = require('gulp-clean');
  17.  
  18.  
  19. // gulp.task('connect', function () {
  20. //     connect.server({
  21. //         root: "build",
  22. //         port: 9000,
  23. //         livereload: false
  24. //     });
  25. // });
  26.  
  27. var paths = {
  28.     styles: {
  29.         src: 'src/scss/*.scss',
  30.         dest: '../dist/css/',
  31.         watch: 'src/scss/**/*.scss'
  32.     },
  33.     scripts: {
  34.         src: '../dist/js/',
  35.         dest: '../dist/js/'
  36.     },
  37.     images: {
  38.         src: '../dist/images/*',
  39.         dest: 'src/img-compress/'
  40.     },
  41.     icons:{
  42.         src: 'src/icons/icons__src/*.svg',
  43.         srcmin: 'src/icons/icons__min/',
  44.         dest: 'src/icons/'
  45.     }
  46. }
  47.  
  48. //default
  49. gulp.task('default', function () {
  50.     // gulp.src(paths.styles.src)
  51.         // .pipe(sass())
  52.         // .pipe(autoprefixer({
  53.         //  browsers: ['last 3 versions', '> 5%']
  54.         // }))
  55.         // .pipe(minifyCSS())
  56.         // .pipe(rename('bundle.min.css'))
  57.         // .pipe(gulp.dest(paths.styles.dest));
  58. });
  59.  
  60. //scss / autoprefixer
  61. gulp.task('scss', function(){
  62.     gulp.src(paths.styles.src)
  63.         .pipe(sass())
  64.         // .pipe(autoprefixer({
  65.         //  browsers: ['last 2 versions']
  66.         // }))
  67.         .pipe(rename('all.css'))
  68.         .pipe(gulp.dest(paths.styles.dest));
  69. });
  70. gulp.task('autoprefixer', function(){
  71.     gulp.src(paths.styles.dest + '*.css')
  72.         .pipe(autoprefixer({
  73.             browsers: ['last 2 versions']
  74.         }))
  75.         // .on('error', err => {
  76.         //  console.log(err);
  77.         // })
  78.         .pipe(gulp.dest(paths.styles.dest));
  79. });
  80.  
  81. //icons tasks
  82. gulp.task('icons-min', function () {
  83.     return gulp.src(paths.icons.src)
  84.         .pipe(svgmin())
  85.         .pipe(gulp.dest(paths.icons.srcmin));
  86. });
  87. gulp.task('icons', function (){
  88.     return gulp.src(paths.icons.srcmin + '*.svg')
  89.         .pipe(rename({prefix: 'icon-'}))
  90.         .pipe(cheerio({
  91.             run: function($){
  92.                 $('[fill]').removeAttr('fill');
  93.             },
  94.             parserOptions: { xmlMode: true }
  95.         }))
  96.         .pipe(svgstore({inlineSvg:true}))
  97.         .pipe(cheerio({
  98.             run: function ($) {
  99.                 $('svg').attr('style', 'display:none');
  100.             },
  101.             parserOptions: { xmlMode: true }
  102.         }))
  103.         .pipe(rename('svg-defs.svg'))
  104.         .pipe(gulp.dest(paths.icons.dest));
  105. });
  106.  
  107. //finish tasks
  108. gulp.task('css-minify', function(){
  109.     gulp.src(paths.styles.dest + 'all.css')
  110.         .pipe(minifyCSS())
  111.         .pipe(rename('all.min.css'))
  112.         .pipe(gulp.dest(paths.styles.dest));
  113. });
  114. gulp.task('images-compress', function(){
  115.     gulp.src(paths.images.src)
  116.         .pipe(imagemin())
  117.         .pipe(gulp.dest(paths.images.dest));
  118. });
  119. gulp.task('js-minify', function(){
  120.     gulp.src(paths.scripts.src + 'main.js')
  121.         .pipe(uglify())
  122.         .pipe(rename('main.min.js'))
  123.         .pipe(gulp.dest(paths.scripts.dest));
  124. });
  125.  
  126. //clean
  127. gulp.task('clean', function(){
  128.     gulp.src('node_modules', {read: false})
  129.         .pipe(clean());
  130. });
  131.  
  132. //watch
  133. gulp.task('watch', function(){
  134.     // gulp.watch('src/**/*.scss', ['default']);
  135.     gulp.watch(paths.styles.watch, ['scss', 'autoprefixer']);
  136. });
  137.  
  138. //
  139. // gulp.task('styles-run', ['scss', 'autoprefixer']);
  140. gulp.task('styles-run', ['scss']);
  141. gulp.task('icons-run', ['icons-min', 'icons']);
  142. gulp.task('finish', ['css-minify', 'images-compress', 'js-minify']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement