Advertisement
Guest User

Untitled

a guest
Aug 27th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.62 KB | None | 0 0
  1. var gulp = require("gulp"),
  2. util = require('gulp-util'),
  3. minifyHTML = require("gulp-minify-html"),
  4. concat = require("gulp-concat"),
  5. uglify = require("gulp-uglify"),
  6. cssmin = require("gulp-cssmin"),
  7. uncss = require("gulp-uncss"),
  8. imagemin = require("gulp-imagemin"),
  9. sourcemaps = require("gulp-sourcemaps"),
  10. inject = require("gulp-inject"),
  11. less = require("gulp-less"),
  12. filter = require("gulp-filter"),
  13. glob = require("glob"),
  14. browserSync = require("browser-sync"),
  15. LessPluginAutoPrefix = require('less-plugin-autoprefix'),
  16. autoprefix = new LessPluginAutoPrefix({
  17. browsers: ["last 2 versions"]
  18. });
  19.  
  20. var config = {
  21. paths: {
  22. html: {
  23. src: "src/**/*.html",
  24. dest: "build"
  25. },
  26. javascript: {
  27. src: ["src/js/**/*.js"],
  28. dest: "build/js"
  29. },
  30. css: {
  31. src: ["src/css/**/*.css"],
  32. dest: "build/css"
  33. },
  34. less: {
  35. src: ["src/less/**/*.less", "!src/less/includes/**"],
  36. dest: "build/css"
  37. },
  38. images: {
  39. src: ["src/images/**/*.jpg", "src/images/**/*.jpeg", "src/images/**/*.png"],
  40. dest: "build/images"
  41. },
  42. audio: {
  43. src: "src/audio/**/*.mp3",
  44. dest: "build/audio"
  45. }
  46. }
  47. };
  48.  
  49. gulp.task("html", function(){
  50. return gulp.src(config.paths.html.src)
  51. .pipe(minifyHTML())
  52. .pipe(gulp.dest(config.paths.html.dest));
  53. });
  54.  
  55. gulp.task("scripts", function(){
  56. return gulp.src(config.paths.javascript.src)
  57. .pipe(sourcemaps.init())
  58. .pipe(concat("app.min.js"))
  59. .pipe(uglify())
  60. .pipe(sourcemaps.write())
  61. .pipe(gulp.dest(config.paths.javascript.dest));
  62. });
  63.  
  64. gulp.task("css", function(){
  65. return gulp.src(config.paths.css.src)
  66. .pipe(sourcemaps.init())
  67. .pipe(cssmin())
  68. .pipe(sourcemaps.write("."))
  69. .pipe(gulp.dest(config.paths.css.dest))
  70. .pipe(browserSync.reload({stream: true}));
  71. });
  72.  
  73. gulp.task("less", function(){
  74. return gulp.src(config.paths.less.src)
  75. .pipe(sourcemaps.init())
  76. .pipe(less({
  77. paths: ["node_modules/bootstrap/less"],
  78. plugins: [autoprefix]
  79. }))
  80. .pipe(uncss({
  81. html: glob.sync(config.paths.html.src)
  82. }))
  83. .pipe(concat("main.min.css"))
  84. .pipe(sourcemaps.write("."))
  85. .pipe(gulp.dest(config.paths.less.dest))
  86. .pipe(filter("**/*.css"))
  87. .pipe(browserSync.reload({stream: true}));
  88. });
  89.  
  90. gulp.task("images", function(){
  91. return gulp.src(config.paths.images.src)
  92. .pipe(imagemin({
  93. progressive: true,
  94. interlaced: true
  95. }))
  96. .pipe(gulp.dest(config.paths.images.dest));
  97. });
  98.  
  99. gulp.task("audio", function() {
  100. return gulp.src([config.paths.audio.src]).pipe(gulp.dest(config.paths.audio.dest));
  101. });
  102.  
  103. gulp.task("browser-sync", function() {
  104. browserSync({
  105. server: {
  106. baseDir: "./build"
  107. }
  108. });
  109. });
  110.  
  111. gulp.task("build", ["html", "scripts", "css", "less", "images", "audio"]);
  112.  
  113. gulp.task("default", ["build", "browser-sync"], function(){
  114. gulp.watch(config.paths.html.src, ["html", browserSync.reload]);
  115. gulp.watch(config.paths.javascript.src, ["scripts", browserSync.reload]);
  116. gulp.watch(config.paths.css.src, ["css"]);
  117. gulp.watch(config.paths.less.src, ["less"]);
  118. gulp.watch(config.paths.images.src, ["images", browserSync.reload]);
  119. gulp.watch(config.paths.audio.src, ["audio", browserSync.reload]);
  120. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement