Advertisement
Guest User

gulpfile

a guest
Jul 26th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var gulp         = require('gulp'),
  2.     sass         = require('gulp-sass'),
  3.     autoprefixer = require('gulp-autoprefixer'),
  4.     kraken       = require('gulp-kraken'),
  5.     rename       = require('gulp-rename'),
  6.     imagemin     = require('gulp-imagemin'),
  7.     uglify       = require('gulp-uglify'),
  8.     concat       = require('gulp-concat'),
  9.     pngquant     = require('imagemin-pngquant'),
  10.     rimraf       = require('gulp-rimraf'),
  11.     browserSync  = require('browser-sync'),
  12.     svgSprite    = require('gulp-svg-sprite'),
  13.     notify       = require('gulp-notify'),
  14.     eslint       = require('gulp-eslint'),
  15.     babel        = require('gulp-babel'),
  16.     order        = require('gulp-order'),
  17.     rev          = require('gulp-rev'),
  18.     revReplace   = require('gulp-rev-replace');
  19.  
  20. var config = {
  21.     mode: {
  22.         symbol: { // Symbol mode
  23.             render: {
  24.                 css: false, // CSS for icon sizing
  25.                 scss: false // SCSS for icon sizing
  26.             },
  27.             dimension: { // Set maximum dimensions
  28.                 width: 42,
  29.                 height: 42
  30.             },
  31.             dest: './', // Destination folder
  32.             sprite: 'all-sprite.svg', // Sprite name
  33.             example: true // Sample page
  34.         }
  35.     }
  36. };
  37.  
  38. gulp.task('svg', (done) => {
  39.     return gulp.src('img/svg/**/*.svg')
  40.         .pipe(svgSprite(config))
  41.         .pipe(gulp.dest('img/svg/'));
  42.         done();
  43. });
  44.  
  45.  
  46. gulp.task('minify_images', (done) => {
  47.  
  48.     return gulp.src('img/*')
  49.         .pipe(imagemin({
  50.             progressive: true,
  51.             svgoPlugins: [{
  52.                 removeViewBox: false
  53.             }],
  54.             use: [pngquant()]
  55.         }))
  56.         .pipe(gulp.dest('./img/'))
  57.         .pipe(notify('Images Compressed'));
  58.         done();
  59.  
  60. });
  61.  
  62.  
  63. gulp.task("revreplace", (done) => {
  64.     var manifest = gulp.src("./" + 'dist/' + "/rev-manifest.json");
  65.  
  66.     gulp.src('src' + "/index.html")
  67.         .pipe(revReplace({
  68.             manifest: manifest
  69.         }))
  70.         .pipe(gulp.dest('dist/'))
  71.         .pipe(notify('revrepl'));
  72.         done();
  73. });
  74.  
  75.  
  76. gulp.task('clear_scripts', (done) => {
  77.     return gulp.src('dist/js/**/*.*')
  78.         .pipe(rimraf());
  79.         done();
  80. });
  81. gulp.task('clear_styles', (done) => {
  82.     return gulp.src('dist/css/**/*.*')
  83.         .pipe(rimraf());
  84.         done();
  85. });
  86. gulp.task('clear_index', (done) => {
  87.     return gulp.src('dist/*.html')
  88.         .pipe(rimraf());
  89.         done();
  90. });
  91. gulp.task('lint', (done) => {
  92.     return gulp.src(['src/js/scripts.babel.js', '!node_modules/**'])
  93.         .pipe(eslint({
  94.             configFile: 'eslintrc.json'
  95.         }))
  96.         .pipe(eslint.format());
  97.         done();
  98. });
  99.  
  100. gulp.task('generate_styles', gulp.parallel('clear_styles', 'clear_index', (done) => {
  101.  
  102.     gulp.src('src/scss/**/*.scss')
  103.         .pipe(sass({
  104.             outputStyle: 'compressed'
  105.         }).on('error', sass.logError))
  106.         .pipe(autoprefixer('last 10 versions', 'ie 9'))
  107.         .pipe(rename({
  108.             suffix: '.min'
  109.         }))
  110.         .pipe(rev())
  111.         .pipe(gulp.dest('./dist/css/'))
  112.         .pipe(rev.manifest('dist/rev-manifest.json', {
  113.             base: process.cwd() + '/dist',
  114.             merge: true
  115.         }))
  116.         .pipe(gulp.dest('./dist'))
  117.         done();
  118. }));
  119. gulp.task('compress_javascript', gulp.parallel('clear_scripts', 'clear_index', 'lint', (done) => {
  120.  
  121.     gulp.src('src/js/**/*.js')
  122.         .pipe(order([
  123.             'src/js/**/*.js',
  124.             'src/js/scripts.babel.js'
  125.         ]))
  126.         .pipe(babel({
  127.             presets: ['es2015'],
  128.             ignore: './src/js/lib'
  129.         }))
  130.         .pipe(uglify())
  131.         .pipe(concat('app.js'))
  132.         .pipe(rename({
  133.             suffix: '.min'
  134.         }))
  135.         .pipe(rev())
  136.         .pipe(gulp.dest('./dist/js/'))
  137.         .pipe(rev.manifest('dist/rev-manifest.json', {
  138.             base: process.cwd() + '/dist',
  139.             merge: true
  140.         }))
  141.         .pipe(gulp.dest('./dist'))
  142.         .pipe(notify('Javascript Minified and Concatenated'))
  143.         done();
  144. }));
  145.  
  146. gulp.task('generate_js', () => {
  147.     gulp.watch(['src/js/**/*.js'], gulp.series('compress_javascript', 'revreplace' ));
  148. });
  149.  
  150. gulp.task('generate_css', () => {
  151.     gulp.watch(['src/scss/**/*.scss'], gulp.series('generate_styles', 'revreplace'));
  152. });
  153.  
  154. gulp.task('watch', gulp.parallel('generate_js', 'generate_css'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement