Advertisement
Guest User

Untitled

a guest
Sep 17th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.41 KB | None | 0 0
  1. "use strict";
  2.  
  3. const gulp = require("gulp");
  4. const plumber = require("gulp-plumber");
  5. const sourcemap = require("gulp-sourcemaps");
  6. const sass = require("gulp-sass");
  7. const postcss = require("gulp-postcss");
  8. const autoprefixer = require("autoprefixer");
  9. const csso = require ("gulp-csso");
  10. const rename = require ("gulp-rename");
  11. const server = require("browser-sync").create();
  12. const imagemin = require ("gulp-imagemin");
  13. const del = require("del");
  14. const posthtml = require ("gulp-posthtml");
  15. const include = require("posthtml-include");
  16. const htmlmin = require ("gulp-htmlmin");
  17. const jsmin = require("gulp-jsmin");
  18. const babel = require("gulp-babel");
  19. const svgstore = require("gulp-svgstore");
  20.  
  21. gulp.task("sprite", function () {
  22. return gulp.src("source/img/icon/icon-*.svg")
  23. .pipe(svgstore({
  24. inlineSvg: true
  25. }))
  26. .pipe(rename("sprite.svg"))
  27. .pipe(gulp.dest("build/img"));
  28. });
  29.  
  30. gulp.task("images", () => gulp.src("source/img/**/*.{png,jpg,svg}")
  31. .pipe(imagemin([
  32. imagemin.optipng({optimizationLevel: 3}),
  33. imagemin.jpegtran({progressive: true}),
  34. imagemin.svgo()
  35. ])));
  36.  
  37. gulp.task("css", () => gulp.src("source/sass/style.scss")
  38. .pipe(plumber())
  39. .pipe(sourcemap.init())
  40. .pipe(sass())
  41. .pipe(postcss([
  42. autoprefixer()
  43. ]))
  44. .pipe(csso())
  45. .pipe(rename("style.min.css"))
  46. .pipe(sourcemap.write("."))
  47. .pipe(gulp.dest("build/css"))
  48. .pipe(server.stream()));
  49.  
  50. gulp.task("copy", () => gulp.src([
  51. "source/fonts/**/*.{woff,woff2}",
  52. "source/img/**",
  53. "source/*.ico"
  54. ], {
  55. base: "source"
  56. })
  57. .pipe(gulp.dest("build")));
  58.  
  59. gulp.task ("html", () => gulp.src("source/*.html")
  60. .pipe(posthtml([
  61. include()
  62. ]))
  63. .pipe(htmlmin({collapseWhitespace: true}))
  64. .pipe(gulp.dest("build")));
  65.  
  66. gulp.task("compress", () => gulp.src("source/js/*.js")
  67. .pipe(babel({
  68. presets: ["@babel/env"]
  69. }))
  70. .pipe(jsmin())
  71. .pipe(rename({suffix: ".min"}))
  72. .pipe(gulp.dest("build/js")));
  73.  
  74. gulp.task("clean", () => del("build"));
  75.  
  76. gulp.task("server", () => {
  77. server.init({
  78. server: "build/",
  79. notify: false,
  80. open: true,
  81. cors: true,
  82. ui: false
  83. });
  84.  
  85. gulp.task("refresh", done => {
  86. server.reload();
  87. done();
  88. });
  89.  
  90. gulp.watch("source/sass/**/*.{scss,sass}", gulp.series("css"));
  91. gulp.watch("source/*.html", gulp.series("html", "refresh"));
  92. });
  93.  
  94. gulp.task("build", gulp.series(
  95. "clean",
  96. "copy",
  97. "css",
  98. "sprite",
  99. "html",
  100. "compress"));
  101.  
  102. gulp.task("start", gulp.series("build", "server"));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement