Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var gulp = require("gulp"),
- util = require('gulp-util'),
- minifyHTML = require("gulp-minify-html"),
- concat = require("gulp-concat"),
- uglify = require("gulp-uglify"),
- cssmin = require("gulp-cssmin"),
- uncss = require("gulp-uncss"),
- imagemin = require("gulp-imagemin"),
- sourcemaps = require("gulp-sourcemaps"),
- inject = require("gulp-inject"),
- less = require("gulp-less"),
- filter = require("gulp-filter"),
- glob = require("glob"),
- browserSync = require("browser-sync"),
- LessPluginAutoPrefix = require('less-plugin-autoprefix'),
- autoprefix = new LessPluginAutoPrefix({
- browsers: ["last 2 versions"]
- });
- var config = {
- paths: {
- html: {
- src: "src/**/*.html",
- dest: "build"
- },
- javascript: {
- src: ["src/js/**/*.js"],
- dest: "build/js"
- },
- css: {
- src: ["src/css/**/*.css"],
- dest: "build/css"
- },
- less: {
- src: ["src/less/**/*.less", "!src/less/includes/**"],
- dest: "build/css"
- },
- images: {
- src: ["src/images/**/*.jpg", "src/images/**/*.jpeg", "src/images/**/*.png"],
- dest: "build/images"
- },
- audio: {
- src: "src/audio/**/*.mp3",
- dest: "build/audio"
- }
- }
- };
- gulp.task("html", function(){
- return gulp.src(config.paths.html.src)
- .pipe(minifyHTML())
- .pipe(gulp.dest(config.paths.html.dest));
- });
- gulp.task("scripts", function(){
- return gulp.src(config.paths.javascript.src)
- .pipe(sourcemaps.init())
- .pipe(concat("app.min.js"))
- .pipe(uglify())
- .pipe(sourcemaps.write())
- .pipe(gulp.dest(config.paths.javascript.dest));
- });
- gulp.task("css", function(){
- return gulp.src(config.paths.css.src)
- .pipe(sourcemaps.init())
- .pipe(cssmin())
- .pipe(sourcemaps.write("."))
- .pipe(gulp.dest(config.paths.css.dest))
- .pipe(browserSync.reload({stream: true}));
- });
- gulp.task("less", function(){
- return gulp.src(config.paths.less.src)
- .pipe(sourcemaps.init())
- .pipe(less({
- paths: ["node_modules/bootstrap/less"],
- plugins: [autoprefix]
- }))
- .pipe(uncss({
- html: glob.sync(config.paths.html.src)
- }))
- .pipe(concat("main.min.css"))
- .pipe(sourcemaps.write("."))
- .pipe(gulp.dest(config.paths.less.dest))
- .pipe(filter("**/*.css"))
- .pipe(browserSync.reload({stream: true}));
- });
- gulp.task("images", function(){
- return gulp.src(config.paths.images.src)
- .pipe(imagemin({
- progressive: true,
- interlaced: true
- }))
- .pipe(gulp.dest(config.paths.images.dest));
- });
- gulp.task("audio", function() {
- return gulp.src([config.paths.audio.src]).pipe(gulp.dest(config.paths.audio.dest));
- });
- gulp.task("browser-sync", function() {
- browserSync({
- server: {
- baseDir: "./build"
- }
- });
- });
- gulp.task("build", ["html", "scripts", "css", "less", "images", "audio"]);
- gulp.task("default", ["build", "browser-sync"], function(){
- gulp.watch(config.paths.html.src, ["html", browserSync.reload]);
- gulp.watch(config.paths.javascript.src, ["scripts", browserSync.reload]);
- gulp.watch(config.paths.css.src, ["css"]);
- gulp.watch(config.paths.less.src, ["less"]);
- gulp.watch(config.paths.images.src, ["images", browserSync.reload]);
- gulp.watch(config.paths.audio.src, ["audio", browserSync.reload]);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement