Guest User

Untitled

a guest
Jan 14th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.18 KB | None | 0 0
  1. var syntax = 'css'; // Syntax: sass or css;
  2.  
  3. var cssfile = ['app/assets/css/main.css','app/assets/css/libs.css'];
  4.  
  5. var gulp = require('gulp'), // Подключаем Gulp
  6. browserSync = require('browser-sync'), // Подключаем Browser Sync
  7. concat = require('gulp-concat'), // Подключаем gulp-concat (для конкатенации файлов)
  8. uglify = require('gulp-uglifyjs'), // Подключаем gulp-uglifyjs (для сжатия JS)
  9. cssnano = require('gulp-cssnano'), // Подключаем пакет для минификации CSS
  10. rename = require('gulp-rename'), // Подключаем библиотеку для переименования файлов
  11. del = require('del'), // Подключаем библиотеку для удаления файлов и папок
  12. imagemin = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями
  13. pngquant = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png
  14. cache = require('gulp-cache'), // Подключаем библиотеку кеширования
  15. cleancss = require('gulp-clean-css'),
  16. autoprefixer = require('gulp-autoprefixer');// Подключаем библиотеку для автоматического добавления префиксов
  17. gutil = require('gulp-util');
  18. ftp = require('vinyl-ftp');
  19.  
  20.  
  21. gulp.task('browser-sync', function() { // Создаем таск browser-sync
  22. browserSync({ // Выполняем browserSync
  23. server: { // Определяем параметры сервера
  24. baseDir: 'app' // Директория для сервера - app
  25. },
  26. notify: false // Отключаем уведомления
  27. });
  28. });
  29.  
  30. gulp.task('scripts', function() {
  31. return gulp.src([ // Берем все необходимые библиотеки
  32. 'app/assets/libs/jquery/dist/jquery.min.js', // jQuery
  33. 'app/assets/libs/magnific-popup/dist/jquery.magnific-popup.min.js', // Magnific Popup
  34. 'app/assets/libs/owl.carousel/dist/owl.carousel.js',// OWL Carousel
  35. 'app/assets/libs/jquery.maskedinput/dist/jquery.maskedinput.min.js' // Phone Mask
  36.  
  37. ])
  38. .pipe(concat('libs.min.js')) // Собираем их в кучу в новом файле libs.min.js
  39. .pipe(uglify()) // Сжимаем JS файл
  40. .pipe(gulp.dest('app/assets/js')) // Выгружаем в папку app/js
  41. .pipe(browserSync.stream())
  42. });
  43.  
  44. gulp.task('styles', function() {
  45. return gulp.src(cssfile)
  46. .pipe(rename({ suffix: '.min', prefix : '' }))
  47. .pipe(autoprefixer(['last 15 versions']))
  48. .pipe(cleancss( {level: { 1: { specialComments: 0 } } }))// Opt., comment out when debugging
  49. .pipe(gulp.dest('app/assets/css/'))
  50. .pipe(browserSync.stream())
  51. });
  52.  
  53. gulp.task('code', function() {
  54. return gulp.src('app/*.html')
  55. .pipe(browserSync.reload({ stream: true }))
  56. });
  57.  
  58. gulp.task('watch', function() {
  59. gulp.watch(cssfile, gulp.parallel('styles'));
  60. gulp.watch(['app/assets/libs/**/*.js', 'app/assets/js/**/*.js'], browserSync.reload);
  61. gulp.watch('app/*.html', gulp.parallel('code'))
  62. });
  63.  
  64. gulp.task('clean', function() {
  65. return del.sync('dist'); // Удаляем папку dist перед сборкой
  66. });
  67.  
  68. gulp.task('img', function() {
  69. return gulp.src('app/assets/images/**/*') // Берем все изображения из app
  70. .pipe(cache(imagemin({ // Сжимаем их с наилучшими настройками с учетом кеширования
  71. interlaced: true,
  72. progressive: true,
  73. svgoPlugins: [{removeViewBox: false}],
  74. use: [pngquant()]
  75. })))
  76. .pipe(gulp.dest('dist/assets/images')); // Выгружаем на продакшен
  77. });
  78.  
  79. gulp.task('build', gulp.parallel('clean', 'img', 'scripts'), function() {
  80.  
  81. var buildCss = gulp.src([ // Переносим стили в продакшен
  82. 'app/assets/css/main.min.css',
  83. 'app/assets/css/libs.min.css'
  84. ])
  85. .pipe(gulp.dest('dist/assets/css'))
  86.  
  87. var buildFonts = gulp.src('app/assets/fonts/**/*') // Переносим шрифты в продакшен
  88. .pipe(gulp.dest('dist/assets/fonts'))
  89.  
  90. var buildJs = gulp.src('app/assets/js/**/*') // Переносим скрипты в продакшен
  91. .pipe(gulp.dest('dist/assets/js'))
  92.  
  93. var buildHtml = gulp.src('app/*.html') // Переносим HTML в продакшен
  94. .pipe(gulp.dest('dist'));
  95.  
  96.  
  97. });
  98.  
  99. gulp.task('deploy', function() {
  100. var conn = ftp.create({
  101. host: 'mydomain. com',
  102. user: 'my-ftp-user-name',
  103. password: 'MyFtpUserPassword',
  104. parallel: 10,
  105. log: gutil.log
  106. });
  107.  
  108. var globs = [
  109. 'dist/**',
  110. 'dist/.htaccess',
  111. ];
  112. return gulp.src(globs, {buffer: false})
  113. .pipe(conn.dest('/www/mydomain.com/'));
  114. });
  115.  
  116. gulp.task('clear', function () {
  117. return cache.clearAll();
  118. });
  119.  
  120. gulp.task('default', gulp.parallel('watch', 'styles', 'scripts', 'browser-sync'));
Add Comment
Please, Sign In to add comment