Guest User

Untitled

a guest
Jul 17th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.76 KB | None | 0 0
  1. var gulp = require('gulp'), //Gulp
  2. sass = require('gulp-sass'), //Sass
  3. browserSync = require('browser-sync'), //browser live updating
  4. concat = require('gulp-concat'), //files concatenation
  5. uglify = require('gulp-uglifyjs'), //JS minification
  6. cssnano = require('gulp-cssnano'), //CSS minification
  7. rename = require('gulp-rename'), //files renaming
  8. imagemin = require('gulp-imagemin'), //images minification
  9. pngquant = require('imagemin-pngquant'), //work with png
  10. cache = require('gulp-cache'), //caching library
  11. autoprefixer = require('gulp-autoprefixer'); //add prefixes
  12.  
  13. //SASS compilation
  14. gulp.task('sass', function(){
  15. return gulp.src('!app/sass/**/*.+(sass|scss)')
  16. .pipe(sass())
  17. .pipe(autoprefixer(['last 15 versions', '> 1%', 'ie 8', 'ie 7'], { cascade: true }))
  18. .pipe(gulp.dest('app/css'))
  19. .pipe(browserSync.reload({stream: true}))
  20. });
  21.  
  22. //browser live updating
  23. gulp.task('browser-sync', function() {
  24. browserSync({
  25. server: {
  26. baseDir: 'app' //server directory
  27. },
  28. notify: false
  29. });
  30. });
  31.  
  32. //build and compress all scripts
  33. gulp.task('scripts', function() {
  34. return gulp.src([
  35. // 'app/libs/jquery/dist/jquery.min.js',
  36. // 'app/libs/magnific-popup/dist/jquery.magnific-popup.min.js'
  37. ])
  38. .pipe(concat('libs.min.js'))
  39. .pipe(uglify())
  40. .pipe(gulp.dest('app/js'));
  41. });
  42.  
  43. //files minification
  44. gulp.task('css-libs', ['sass'], function() {
  45. return gulp.src('app/css/libs.css')
  46. .pipe(cssnano())
  47. .pipe(rename({suffix: '.min'}))
  48. .pipe(gulp.dest('app/css'));
  49. });
  50.  
  51. //sass, html and js files watching
  52. gulp.task('watch', ['browser-sync', 'css-libs', 'scripts'], function() {
  53. gulp.watch('app/sass/**/*.+(sass|scss)', ['sass']);
  54. gulp.watch('app/*.html', browserSync.reload);
  55. gulp.watch('app/js/**/*.js', browserSync.reload);
  56. });
  57.  
  58. //images compressing
  59. gulp.task('img', function() {
  60. return gulp.src('app/img/**/*')
  61. .pipe(cache(imagemin({
  62. interlaced: true,
  63. progressive: true,
  64. svgoPlugins: [{removeViewBox: false}],
  65. use: [pngquant()]
  66. })))
  67. .pipe(gulp.dest('dist/img'));
  68. });
  69.  
  70. //transfer files into production folder
  71. gulp.task('build', [, 'img', 'sass', 'scripts'], function() {
  72.  
  73. var buildCss = gulp.src([
  74. 'app/css/main.css',
  75. 'app/css/libs.min.css'
  76. ])
  77. .pipe(gulp.dest('dist/css'))
  78.  
  79. var buildFonts = gulp.src('app/fonts/**/*')
  80. .pipe(gulp.dest('dist/fonts'))
  81.  
  82. var buildJs = gulp.src('app/js/**/*')
  83. .pipe(gulp.dest('dist/js'))
  84.  
  85. var buildHtml = gulp.src('app/*.html')
  86. .pipe(gulp.dest('dist'));
  87.  
  88. });
  89.  
  90. gulp.task('clear', function () {
  91. return cache.clearAll();
  92. })
  93.  
  94. gulp.task('default', ['watch']);
Add Comment
Please, Sign In to add comment