T
T
TheRevan2018-02-22 09:57:15
gulp.js
TheRevan, 2018-02-22 09:57:15

How to add gulp-rigger to current gulpfile?

var gulp           = require('gulp'),
    gutil          = require('gulp-util' ),
    sass           = require('gulp-sass'),
    browserSync    = require('browser-sync'),
    concat         = require('gulp-concat'),
    uglify         = require('gulp-uglify'),
    cleanCSS       = require('gulp-clean-css'),
    rename         = require('gulp-rename'),
    del            = require('del'),
    imagemin       = require('gulp-imagemin'),
    cache          = require('gulp-cache'),
    autoprefixer   = require('gulp-autoprefixer'),
    ftp            = require('vinyl-ftp'),
    notify         = require("gulp-notify"),
    rigger         = require('gulp-rigger'),
    svgSprite      = require('gulp-svg-sprite'),
    rsync          = require('gulp-rsync');

// Пользовательские скрипты проекта

gulp.task('common-js', function() {
  return gulp.src([
    'app/js/common.js',
    ])
  .pipe(rigger())
  .pipe(concat('common.min.js'))
  .pipe(uglify())
  .pipe(gulp.dest('app/js'));
});

gulp.task('js', ['common-js'], function() {
  return gulp.src([
    'app/libs/jquery/dist/jquery.min.js',
    'app/js/common.min.js', // Всегда в конце
    ])
  .pipe(rigger())
  .pipe(concat('scripts.min.js'))
  // .pipe(uglify()) // Минимизировать весь js (на выбор)
  .pipe(gulp.dest('app/js'))
  .pipe(browserSync.reload({stream: true}));
});

gulp.task('browser-sync', function() {
  browserSync({
    server: {
      baseDir: 'app'
    },
    notify: false,
    // tunnel: true,
    // tunnel: "projectmane", //Demonstration page: http://projectmane.localtunnel.me
  });
});


/* ~~~~~~~~~~~~~~~~~~~~~~~~ Generate Sprite SVG ~~~~~~~~~~~~~~~~~~~~~~~~*/
gulp.task('spriteSvg', function() {
  return gulp
    .src('app/img/svg/*.svg')
    .pipe(cheerio({
      run: function($) {
        $('[fill]').removeAttr('fill');
        $('[stroke]').removeAttr('stroke');
        $('[style]').removeAttr('style');
      },
      parserOptions: {
        xmlMode: true
      }
    }))
    .pipe(replace('>', '>'))
    .pipe(svgSprite({
      mode: {
        symbol: {
          dest: "",
          prefix: '.',
          dimensions: '.',
          sprite: "sprite.svg",
        }
      }

    }))
    .pipe(gulp.dest('app/img/sprite/')
  );
});

gulp.task('sass', function() {
  return gulp.src('app/sass/**/*.sass')
  .pipe(sass({outputStyle: 'expand'}).on("error", notify.onError()))
  .pipe(rename({suffix: '.min', prefix : ''}))
  .pipe(autoprefixer(['last 15 versions']))
  .pipe(cleanCSS()) // Опционально, закомментировать при отладке
  .pipe(gulp.dest('app/css'))
  .pipe(browserSync.reload({stream: true}));
});


gulp.task('watch', ['sass', 'js', 'browser-sync'], function() {
  gulp.watch('app/sass/**/*.sass', ['sass']);
  gulp.watch(['libs/**/*.js', 'app/js/common.js'], ['js']);
  gulp.watch('app/*.html', browserSync.reload);
  
});

gulp.task('imagemin', function() {
  return gulp.src('app/img/**/*')
  .pipe(cache(imagemin())) // Cache Images
  .pipe(gulp.dest('dist/img')); 
});

gulp.task('build', ['removedist', 'imagemin', 'sass', 'js'], function() {

  var buildFiles = gulp.src([
    'app/*.html',
    'app/.htaccess',
    ]).pipe(rigger()).pipe(gulp.dest('dist'));

  var buildCss = gulp.src([
    'app/css/main.min.css',
    ]).pipe(gulp.dest('dist/css'));

  var buildJs = gulp.src([
    'app/js/scripts.min.js',
    ]).pipe(gulp.dest('dist/js'));

  var buildFonts = gulp.src([
    'app/fonts/**/*',
    ]).pipe(gulp.dest('dist/fonts'));

});

gulp.task('deploy', function() {

  var conn = ftp.create({
    host:      'hostname.com',
    user:      'username',
    password:  'userpassword',
    parallel:  10,
    log: gutil.log
  });

  var globs = [
  'dist/**',
  'dist/.htaccess',
  ];
  return gulp.src(globs, {buffer: false})
  .pipe(conn.dest('/path/to/folder/on/server'));

});

gulp.task('rsync', function() {
  return gulp.src('dist/**')
  .pipe(rsync({
    root: 'dist/',
    hostname: '[email protected]',
    destination: 'yousite/public_html/',
    // include: ['*.htaccess'], // Скрытые файлы, которые необходимо включить в деплой
    recursive: true,
    archive: true,
    silent: false,
    compress: true
  }));
});

gulp.task('removedist', function() { return del.sync('dist'); });
gulp.task('clearcache', function () { return cache.clearAll(); });

gulp.task('default', ['watch']);

I don't understand how to add rigger, and by the way, will gulp-sprite svg work?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Viktor Yanyshev, 2018-02-22
@villiwalla

How to automatically rebuild a project on the fly?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question