Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2.  
  3. const gulp = require("gulp");
  4. const sass = require('gulp-sass');
  5. const autoprefixer = require('autoprefixer');
  6. const sourcemaps = require('gulp-sourcemaps');
  7. const livereload = require('gulp-livereload');
  8. const export_sass = require('node-sass-export');
  9. const sassGlob = require('gulp-sass-glob');
  10. const postcss = require('gulp-postcss');
  11. const base_64 = require('postcss-inline-base64');
  12. const minify = require("gulp-minify");
  13.  
  14.  
  15. const catch_error = (err) => {
  16.   console.log(err.toString());
  17.   this.emit('end');
  18. };
  19.  
  20. function theme_scss() {
  21.   return gulp
  22.     .src('web/themes/yat/scss/**/*.scss')
  23.     .pipe(sourcemaps.init())
  24.     .pipe(sassGlob())
  25.     .pipe(sass(
  26.       {
  27.         functions: export_sass('web/themes/yat')
  28.       }
  29.     ))
  30.     .on('error', catch_error)
  31.     .pipe(postcss([
  32.       base_64({useCache: false}),
  33.       autoprefixer({browsers: ['last 2 versions'], cascade: false}),
  34.     ]))
  35.     .pipe(sourcemaps.mapSources(function (sourcePath) {
  36.       return '../' + sourcePath.replace(/.*\./, '') + '/' + sourcePath;
  37.     }))
  38.     .pipe(sourcemaps.write(''))
  39.     .pipe(gulp.dest('web/themes/yat/css'))
  40.     .pipe(livereload())
  41. }
  42.  
  43. function module_scss() {
  44.   return gulp
  45.     .src('web/modules/custom/**/*.scss')
  46.     .pipe(sourcemaps.init())
  47.     .pipe(sass())
  48.     .on('error', catch_error)
  49.     .pipe(postcss([
  50.       base_64({useCache: false}),
  51.       autoprefixer({browsers: ['last 2 versions'], cascade: false}),
  52.     ]))
  53.     .pipe(sourcemaps.mapSources(function (sourcePath) {
  54.       return sourcePath.replace(/.*\//, '');
  55.     }))
  56.     .pipe(sourcemaps.write(''))
  57.     .pipe(gulp.dest('web/modules/custom'))
  58.     .pipe(livereload())
  59. }
  60.  
  61.  
  62. function module_js() {
  63.   const fold = 'web/modules/custom';
  64.  
  65.   return gulp
  66.     .src([`${fold}/**/*.js`, `!${fold}/**/*min.js`])
  67.     .pipe(sourcemaps.init())
  68.     .pipe(sourcemaps.identityMap())
  69.     .pipe(minify({
  70.       ext: {
  71.         min: '.min.js'
  72.       },
  73.       noSource: true
  74.     }))
  75.     .on('error', catch_error)
  76.     .pipe(sourcemaps.mapSources(function (sourcePath) {
  77.       return sourcePath.replace(/.*\//, '');
  78.     }))
  79.     .pipe(sourcemaps.write(''))
  80.     .pipe(gulp.dest(fold))
  81.  
  82. }
  83.  
  84. function watch() {
  85.   livereload.listen();
  86.   theme_scss();
  87.   module_scss();
  88.   module_js();
  89.   gulp.watch('web/themes/yat/scss/**/*.scss', gulp.series(theme_scss));
  90.   gulp.watch('web/modules/custom/**/*.scss', gulp.series(module_scss));
  91.   gulp.watch(['web/modules/custom/**/*.js', '!web/modules/custom/**/*min.js'], gulp.series(module_js));
  92. }
  93.  
  94. exports.theme_scss = theme_scss;
  95. exports.default = exports.build = gulp.series(
  96.   theme_scss,
  97.   module_scss,
  98.   module_js
  99. );
  100. exports.watch = watch;
  101. exports.module_js = gulp.series(module_js);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement