Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2016
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.33 KB | None | 0 0
  1. var gulp = require('gulp'),
  2. gutil = require('gulp-util' ),
  3. sass = require('gulp-sass'),
  4. browserSync = require('browser-sync'),
  5. concat = require('gulp-concat'),
  6. uglify = require('gulp-uglify'),
  7. cleanCSS = require('gulp-clean-css'),
  8. rename = require('gulp-rename'),
  9. del = require('del'),
  10. imagemin = require('gulp-imagemin'),
  11. pngquant = require('imagemin-pngquant'),
  12. cache = require('gulp-cache'),
  13. autoprefixer = require('gulp-autoprefixer'),
  14. fileinclude = require('gulp-file-include'),
  15. gulpRemoveHtml = require('gulp-remove-html'),
  16. bourbon = require('node-bourbon'),
  17. ftp = require('vinyl-ftp');
  18.  
  19. gulp.task('browser-sync', function() {
  20. browserSync({
  21. server: {
  22. baseDir: 'app'
  23. },
  24. notify: false
  25. });
  26. });
  27.  
  28. gulp.task('sass', ['headersass'], function() {
  29. return gulp.src('app/sass/**/*.sass')
  30. .pipe(sass({
  31. includePaths: bourbon.includePaths
  32. }).on('error', sass.logError))
  33. .pipe(rename({suffix: '.min', prefix : ''}))
  34. .pipe(autoprefixer(['last 15 versions']))
  35. .pipe(cleanCSS())
  36. .pipe(gulp.dest('app/css'))
  37. .pipe(browserSync.reload({stream: true}))
  38. });
  39.  
  40. gulp.task('headersass', function() {
  41. return gulp.src('app/header.sass')
  42. .pipe(sass({
  43. includePaths: bourbon.includePaths
  44. }).on('error', sass.logError))
  45. .pipe(rename({suffix: '.min', prefix : ''}))
  46. .pipe(autoprefixer(['last 15 versions']))
  47. .pipe(cleanCSS())
  48. .pipe(gulp.dest('app'))
  49. .pipe(browserSync.reload({stream: true}))
  50. });
  51.  
  52. gulp.task('libs', function() {
  53. return gulp.src([
  54. 'app/libs/jquery/dist/jquery.min.js',
  55. // 'app/libs/magnific-popup/magnific-popup.min.js'
  56. ])
  57. .pipe(concat('libs.min.js'))
  58. .pipe(uglify())
  59. .pipe(gulp.dest('app/js'));
  60. });
  61.  
  62. gulp.task('watch', ['sass', 'libs', 'browser-sync'], function() {
  63. gulp.watch('app/header.sass', ['headersass']);
  64. gulp.watch('app/sass/**/*.sass', ['sass']);
  65. gulp.watch('app/*.html', browserSync.reload);
  66. gulp.watch('app/js/**/*.js', browserSync.reload);
  67. });
  68.  
  69. gulp.task('imagemin', function() {
  70. return gulp.src('app/img/**/*')
  71. .pipe(cache(imagemin({
  72. interlaced: true,
  73. progressive: true,
  74. svgoPlugins: [{removeViewBox: false}],
  75. use: [pngquant()]
  76. })))
  77. .pipe(gulp.dest('dist/img'));
  78. });
  79.  
  80. gulp.task('buildhtml', function() {
  81. gulp.src(['app/*.html'])
  82. .pipe(fileinclude({
  83. prefix: '@@'
  84. }))
  85. .pipe(gulpRemoveHtml())
  86. .pipe(gulp.dest('dist/'));
  87. });
  88.  
  89. gulp.task('removedist', function() { return del.sync('dist'); });
  90.  
  91. gulp.task('build', ['removedist', 'buildhtml', 'imagemin', 'sass', 'libs'], function() {
  92.  
  93. var buildCss = gulp.src([
  94. 'app/css/fonts.min.css',
  95. 'app/css/main.min.css'
  96. ]).pipe(gulp.dest('dist/css'));
  97.  
  98. var buildFiles = gulp.src([
  99. 'app/.htaccess'
  100. ]).pipe(gulp.dest('dist'));
  101.  
  102. var buildFonts = gulp.src('app/fonts/**/*').pipe(gulp.dest('dist/fonts'));
  103.  
  104. var buildJs = gulp.src('app/js/**/*').pipe(gulp.dest('dist/js'));
  105.  
  106. });
  107.  
  108. gulp.task('deploy', function() {
  109.  
  110. var conn = ftp.create({
  111. host: 'hostname.com',
  112. user: 'username',
  113. password: 'userpassword',
  114. parallel: 10,
  115. log: gutil.log
  116. });
  117.  
  118. var globs = [
  119. 'dist/**',
  120. 'dist/.htaccess',
  121. ];
  122. return gulp.src(globs, {buffer: false})
  123. .pipe(conn.dest('/path/to/folder/on/server'));
  124.  
  125. });
  126.  
  127. gulp.task('clearcache', function () { return cache.clearAll(); });
  128.  
  129. gulp.task('default', ['watch']);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement