Advertisement
Guest User

GulpFile

a guest
Aug 24th, 2018
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.35 KB | None | 0 0
  1. 'use strict';
  2.  
  3. var autoprefixer = require('gulp-autoprefixer');
  4. var csso = require('gulp-csso');
  5. var del = require('del');
  6. var gulp = require('gulp');
  7. var htmlmin = require('gulp-htmlmin');
  8. var runSequence = require('run-sequence');
  9. var sass = require('gulp-sass');
  10. var uglify = require('gulp-uglify');
  11. var imagemin = require('gulp-imagemin');
  12. var gutil = require('gulp-util');
  13. var svgmin = require('gulp-svgmin');
  14. var ftp = require('vinyl-ftp');
  15.  
  16.  
  17. gulp.task('default', ['styles-sass', 'styles-css',
  18. 'scripts', 'pages', 'images', 'svg', 'copy-favicon'])
  19. gulp.task('deploy', ['ftp-upload'])
  20.  
  21. // Set the browser that you want to support
  22. const AUTOPREFIXER_BROWSERS = [
  23. 'ie >= 10',
  24. 'ie_mob >= 10',
  25. 'ff >= 30',
  26. 'chrome >= 34',
  27. 'safari >= 7',
  28. 'opera >= 23',
  29. 'ios >= 7',
  30. 'android >= 4.4',
  31. 'bb >= 10'
  32. ];
  33.  
  34.  
  35. // Gulp task to minify CSS files
  36. gulp.task('styles-sass', function () {
  37. return gulp.src('./src/sass/**/*.scss')
  38. // Compile SASS files
  39. .pipe(sass({
  40. outputStyle: 'nested',
  41. precision: 10,
  42. includePaths: ['.'],
  43. onError: console.error.bind(console, 'Sass error:')
  44. }))
  45. // Auto-prefix css styles for cross browser compatibility
  46. .pipe(autoprefixer({ browsers: AUTOPREFIXER_BROWSERS }))
  47. // Minify the file
  48. .pipe(csso())
  49. // Output
  50. .pipe(gulp.dest('./dist/css'))
  51. });
  52.  
  53. gulp.task('svg', function () {
  54. return gulp.src('./src/svg/**/*.svg')
  55. .pipe(svgmin())
  56. .pipe(gulp.dest('./dist/svg'));
  57. });
  58.  
  59. // Gulp task to minify CSS files
  60. gulp.task('styles-css', function () {
  61. return gulp.src('./src/css/**/*.css')
  62. // Auto-prefix css styles for cross browser compatibility
  63. .pipe(autoprefixer({ browsers: AUTOPREFIXER_BROWSERS }))
  64. // Minify the file
  65. .pipe(csso())
  66. // Output
  67. .pipe(gulp.dest('./dist/css'))
  68. });
  69.  
  70. // Gulp task to minify JavaScript files
  71. gulp.task('scripts', function () {
  72. return gulp.src('./src/js/**/*.js')
  73. // Minify the file
  74. .pipe(uglify())
  75. // Output
  76. .pipe(gulp.dest('./dist/js'))
  77. });
  78.  
  79.  
  80. // Gulp task to minify HTML files
  81. gulp.task('pages', function () {
  82. return gulp.src(['./src/**/*.html'])
  83. .pipe(htmlmin({
  84. collapseWhitespace: true,
  85. removeComments: true
  86. }))
  87. .pipe(gulp.dest('./dist'));
  88. });
  89.  
  90. //Gulp task to minify Image Files
  91. gulp.task('images', () =>
  92. gulp.src('src/images/**/*')
  93. .pipe(imagemin())
  94. .pipe(gulp.dest('dist/images'))
  95. );
  96.  
  97. //Gulp task to copy favicon.
  98. gulp.task('copy-favicon', function () {
  99. return gulp.src('src/favicon.ico')
  100. .pipe(gulp.dest('dist'));
  101. });
  102.  
  103.  
  104. gulp.task('ftp-upload', function () {
  105.  
  106. var conn = ftp.create({
  107. host: 'cedriccoloma.x10host.com',
  108. user: 'test@cedriccoloma.x10host.com',
  109. password: 'testtest',
  110. parallel: 10,
  111. log: gutil.log
  112. });
  113.  
  114. var globs = [
  115. './dist/**'
  116. ];
  117.  
  118. // using base = '.' will transfer everything to /public_html correctly
  119. // turn off buffering in gulp.src for best performance
  120.  
  121. return gulp.src(globs, { base: '', buffer: false })
  122. .pipe(conn.newer('/public_html')) // only upload newer files
  123. .pipe(conn.dest('/public_html'));
  124.  
  125. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement