Guest User

Untitled

a guest
Oct 22nd, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.11 KB | None | 0 0
  1. var gulp = require('gulp'), // Подключаем Gulp
  2. sass = require('gulp-sass'), //Подключаем Sass пакет,
  3. browserSync = require('browser-sync'), // Подключаем Browser Sync
  4. concat = require('gulp-concat'), // Подключаем gulp-concat (для конкатенации файлов)
  5. uglify = require('gulp-uglifyjs'), // Подключаем gulp-uglifyjs (для сжатия JS)
  6. cssnano = require('gulp-cssnano'), // Подключаем пакет для минификации CSS
  7. rename = require('gulp-rename'), // Подключаем библиотеку для переименования файлов
  8. del = require('del'), // Подключаем библиотеку для удаления файлов и папок
  9. autoprefixer = require('gulp-autoprefixer');// Подключаем библиотеку для автоматического добавления префиксов
  10.  
  11. gulp.task('sass', function(){ // Создаем таск Sass
  12. return gulp.src('app/sass/**/*.sass') // Берем источник
  13. .pipe(sass()) // Преобразуем Sass в CSS посредством gulp-sass
  14. .pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], { cascade: true })) // Создаем префиксы
  15. .pipe(gulp.dest('app/css')) // Выгружаем результата в папку app/css
  16. .pipe(browserSync.reload({stream: true})) // Обновляем CSS на странице при изменении
  17. });
  18.  
  19. gulp.task('browser-sync', function() { // Создаем таск browser-sync
  20. browserSync({ // Выполняем browserSync
  21. server: { // Определяем параметры сервера
  22. baseDir: 'app' // Директория для сервера - app
  23. },
  24. notify: false // Отключаем уведомления
  25. });
  26. });
  27.  
  28. gulp.task('scripts', function() {
  29. return gulp.src([ // Берем все необходимые библиотеки
  30. 'app/libs/jquery/dist/jquery.min.js', // Берем jQuery
  31. 'app/libs/magnific-popup/dist/jquery.magnific-popup.min.js' // Берем Magnific Popup
  32. ])
  33. .pipe(concat('libs.min.js')) // Собираем их в кучу в новом файле libs.min.js
  34. .pipe(uglify()) // Сжимаем JS файл
  35. .pipe(gulp.dest('app/js')); // Выгружаем в папку app/js
  36. });
  37.  
  38. gulp.task('css-libs', ['sass'], function() {
  39. return gulp.src('app/css/libs.css') // Выбираем файл для минификации
  40. .pipe(cssnano()) // Сжимаем
  41. .pipe(rename({suffix: '.min'})) // Добавляем суффикс .min
  42. .pipe(gulp.dest('app/css')); // Выгружаем в папку app/css
  43. });
  44.  
  45. gulp.task('watch', ['browser-sync', 'css-libs', 'scripts'], function() {
  46. gulp.watch('app/sass/**/*.sass', ['sass']); // Наблюдение за sass файлами в папке sass
  47. gulp.watch('app/*.html', browserSync.reload); // Наблюдение за HTML файлами в корне проекта
  48. gulp.watch('app/js/**/*.js', browserSync.reload); // Наблюдение за JS файлами в папке js
  49. });
  50.  
  51. gulp.task('clean', function() {
  52. return del.sync('dist'); // Удаляем папку dist перед сборкой
  53. });
  54.  
  55. gulp.task('build', ['clean', 'sass', 'scripts'], function() {
  56.  
  57. var buildCss = gulp.src([ // Переносим библиотеки в продакшен
  58. 'app/css/main.css',
  59. 'app/css/libs.min.css'
  60. ])
  61. .pipe(gulp.dest('dist/css'))
  62.  
  63. var buildFonts = gulp.src('app/fonts/**/*') // Переносим шрифты в продакшен
  64. .pipe(gulp.dest('dist/fonts'))
  65.  
  66. var buildJs = gulp.src('app/js/**/*') // Переносим скрипты в продакшен
  67. .pipe(gulp.dest('dist/js'))
  68.  
  69. var buildHtml = gulp.src('app/*.html') // Переносим HTML в продакшен
  70. .pipe(gulp.dest('dist'));
  71.  
  72. gulp.task('clear', function () {
  73. return cache.clearAll();
  74. })
  75.  
  76. gulp.task('default', ['watch']);
  77. });
Add Comment
Please, Sign In to add comment