Guest User

Untitled

a guest
Jul 16th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.16 KB | None | 0 0
  1. //----------------------<<gulp>>----------------------\\
  2. const gulp = require('gulp');
  3. const clean = require('gulp-clean');
  4. const rename = require('gulp-rename');
  5. const replace = require('gulp-replace');
  6. const cheerio = require('gulp-cheerio');
  7.  
  8. //----------------------<<html scripts>>----------------------\\
  9. const useref = require('gulp-useref');
  10.  
  11. //----------------------<<pug = html>>----------------------\\
  12. const pug = require('gulp-pug');
  13.  
  14. //----------------------<<sass = css>>----------------------\\
  15. const sass = require('gulp-sass');
  16. const sourcemaps = require('gulp-sourcemaps');
  17. const postcss = require('gulp-postcss');
  18. const autoprefixer = require('autoprefixer');
  19. const cssnano = require('cssnano');
  20.  
  21. //----------------------<<js>>----------------------\\
  22. const minify = require('gulp-minify');
  23.  
  24. //----------------------<<dev>>----------------------\\
  25. const browserSync = require('browser-sync').create();
  26.  
  27. //----------------------<<svg>>----------------------\\
  28. const svgSprite = require('gulp-svg-sprite');
  29. const svgmin = require('gulp-svgmin');
  30.  
  31. //----------------------<<personal>>----------------------\\
  32. const svgspriteDest = {
  33. mode: {
  34. symbol: {
  35. sprite: "../svg-sprite.svg"
  36. }
  37. }
  38. };
  39.  
  40. gulp.task('clean', function(){
  41. return gulp.src('build/')
  42. .pipe(clean());
  43. });
  44.  
  45. //----------------------<<engine tasks>>----------------------\\
  46. gulp.task('svgSpriteBuild', function() {
  47. return gulp.src('src/assets/img/svg/*.svg')
  48. .pipe(svgmin({
  49. js2svg: {
  50. pretty: true
  51. }
  52. }))
  53. .pipe(cheerio({
  54. run: function($) {
  55. $('[fill]').removeAttr('fill');
  56. $('[stroke]').removeAttr('stroke');
  57. $('[style]').removeAttr('style');
  58. },
  59. parserOptions: { xmlMode: true }
  60. }))
  61. .pipe(replace('>', '>'))
  62. .pipe(svgSprite(svgspriteDest))
  63. .pipe(gulp.dest('src/assets/img/svg/sprite/'));
  64. });
  65.  
  66. gulp.task('pug', function(){
  67. return gulp.src('src/*.pug')
  68. .pipe(pug({
  69. pretty: true
  70. }))
  71. .pipe(wiredep({
  72. directory: 'bower_components/'
  73. }))
  74. .pipe(useref())
  75. .pipe(gulp.dest('build/'))
  76. });
  77.  
  78. gulp.task('html', function(){
  79. return gulp.src('src/**/*.html')
  80. .pipe(useref())
  81. .pipe(gulp.dest('build/'))
  82. });
  83.  
  84. gulp.task('css', function(){
  85. return gulp.src('src/css/main.scss')
  86. .pipe(sourcemaps.init())
  87. .pipe(sass())
  88. .pipe(rename('main.min.css'))
  89. .pipe(postcss([cssnano, autoprefixer]))
  90. .pipe(sourcemaps.write())
  91. .pipe(gulp.dest('build/css'));
  92. });
  93.  
  94. gulp.task('minify-js', function(){
  95. gulp.src('src/js/*.js')
  96. .pipe(minify({
  97. ext:{
  98. min:'.min.js'
  99. },
  100. noSource: true
  101. }))
  102. .pipe(gulp.dest('src/js/ugly'))
  103. });
  104.  
  105. gulp.task('js', function(){
  106. gulp.src('src/js/*.js')
  107. .pipe(minify({
  108. ext:{
  109. min:'.min.js'
  110. },
  111. noSource: true
  112. }))
  113. .pipe(gulp.dest('src/js/ugly'))
  114. .on('end', function(){
  115. gulp.run('pug');
  116. // gulp.run('html');
  117. });
  118. });
  119.  
  120. gulp.task('assets', function(){
  121. return gulp.src('src/assets/**/*.*')
  122. .pipe(gulp.dest('build/assets'));
  123. });
  124.  
  125. gulp.task('browser-sync', function() {
  126. return browserSync.init({
  127. server: {
  128. baseDir: 'build/'
  129. }
  130. });
  131. });
  132.  
  133. //----------------------<<common tasks>>----------------------\\
  134. gulp.task('watch', function () {
  135. gulp.watch('src/**/*.html', gulp.series('html', browserSync.reload));
  136. gulp.watch('src/**/*.pug', gulp.series('pug', browserSync.reload));
  137. gulp.watch('src/**/*.scss', gulp.series('css', browserSync.reload));
  138. gulp.watch('src/**/*.js', gulp.series('js', browserSync.reload));
  139. gulp.watch('src/assets/**/*.*', gulp.series('assets', browserSync.reload));
  140. });
  141.  
  142. gulp.task('build', gulp.series('svgSpriteBuild', 'html', 'css', 'js', 'assets'));
  143.  
  144. gulp.task('production', gulp.series('clean', 'minify-js', 'build'));
  145.  
  146. gulp.task('dev', gulp.parallel('build', 'watch', 'browser-sync'));
  147.  
  148. gulp.task('default', gulp.series('clean', 'minify-js', 'dev'));
Add Comment
Please, Sign In to add comment