bs_base-8.x-1.x-dev/gulp-tasks.js

gulp-tasks.js
// Define gulp tasks.
module.exports = function (gulp, sass, plugins, options) {

  'use strict';

  const fs = require('fs');

  const { Transform } = require('stream');

  // Modern debug logger using native Node.js Transform streams
  function createDebugTransform() {
    return new Transform({
      objectMode: true,
      transform(file, encoding, callback) {
        console.log('Processing:', file.relative);
        callback(null, file);
      }
    });
  }

  // Processor options.
  options.processors = [
    plugins.reporter(options.processors.reporter)
  ];

  // Post CSS options.
  options.postcssOptions = [
    plugins.autoprefixer(options.autoprefixer)
  ];

  // Defining gulp tasks.

  gulp.task('sass', function () {
    // Disable 'Browserslist: caniuse-lite is outdated.' warning.
    process.env.BROWSERSLIST_IGNORE_OLD_DATA = true;

    const task = gulp.src(options.sass.src + '/**/*.scss');
    // Extract src and dest, pass the rest to sass compiler
    const {src, dest, ...sassOptions} = options.sass;
    task
      .pipe(sass(sassOptions).on('error', sass.logError))
      .pipe(plugins.postcss(options.postcssOptions))
      .pipe(plugins.stripCssComments())
      .pipe(gulp.dest(options.sass.dest));
    return task;
  });

  gulp.task('sass:dev', function () {
    process.env.BROWSERSLIST_IGNORE_OLD_DATA = true;

    const task = gulp.src(options.sass.src + '/**/*.scss', {sourcemaps: true});
    // Extract src and dest, pass the rest to sass compiler
    const {src, dest, ...sassOptions} = options.sass;
    task
      .pipe(sass(sassOptions).on('error', sass.logError))
      .pipe(createDebugTransform())
      .pipe(plugins.postcss(options.postcssOptions))
      .pipe(gulp.dest(options.sass.dest, {sourcemaps: '.'}));
    return task;
  });

  gulp.task('clean:css', function () {
    return plugins.del([
      'css/**/*'
    ]);
  });

  // Gulp run all tasks.

  gulp.task('default', gulp.series('clean:css', 'sass'));
  gulp.task('prod', gulp.series('default'));
  gulp.task('dev', gulp.series('sass:dev'));
  gulp.task('clean', gulp.series('clean:css'));

  // Gulp watches.

  gulp.task('watch', function () {
    gulp.watch(options.sass.src + '/**/*.scss', ['sass']);
  });
  gulp.task('watch:dev', function () {
    gulp.watch(options.sass.src + '/**/*.scss', ['sass:dev']);
  });

};

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc