gulpfile.js (2387B)
1 /*jslint node: true */ 2 "use strict"; 3 4 var gulp = require("gulp"); 5 var sass = require("gulp-sass"); 6 var sourcemaps = require("gulp-sourcemaps"); 7 var autoprefixer = require("gulp-autoprefixer"); 8 var browserSync = require("browser-sync"); 9 var path = require("path"); 10 var fs = require('fs'); 11 12 //script paths 13 var sassDest = "../../../../view/stylesheet/d_admin_style"; 14 var style_folders = sassDest+'/themes/'; 15 var baseDir = path.resolve(__dirname, "../../../../"); 16 17 gulp.task("sass", function () { 18 return gulp.src(sassDest + "/core/core.scss") 19 .pipe(sourcemaps.init()) 20 .pipe(sass({outputStyle: "compressed"}).on("error", sass.logError)) 21 .pipe(autoprefixer({ 22 browsers: ["last 15 versions"] 23 })) 24 .pipe(sourcemaps.write("./")) 25 .pipe(gulp.dest(sassDest + '/core')) 26 .pipe(browserSync.reload({stream: true})); 27 ; 28 }); 29 30 function getFolders(dir) { 31 return fs.readdirSync(dir) 32 .filter(function (file) { 33 return fs.statSync(path.join(dir, file)).isDirectory(); 34 }); 35 } 36 37 gulp.task('sass_multi', function () { 38 var folders = getFolders(style_folders); 39 var tasks = folders.map(function (folder) { 40 return gulp.src(path.join(style_folders, folder, folder + '.s*ss')) 41 .pipe(sourcemaps.init()) 42 .pipe(sass({outputStyle: "compressed"}).on("error", sass.logError)) 43 .pipe(autoprefixer({ 44 browsers: ["last 15 versions"] 45 })) 46 .pipe(sourcemaps.write("./")) 47 .pipe(gulp.dest(style_folders + folder)) 48 .pipe(browserSync.reload({stream: true})); 49 }); 50 return tasks; 51 }); 52 gulp.task('sass_welcome', function () { 53 return gulp.src(sassDest+'/core/welcome.scss') 54 .pipe(sourcemaps.init()) 55 .pipe(sass({outputStyle: "compressed"}).on("error", sass.logError)) 56 .pipe(autoprefixer({ 57 browsers: ["last 15 versions"] 58 })) 59 .pipe(sourcemaps.write("./")) 60 .pipe(gulp.dest(sassDest+'/core')) 61 62 }) 63 gulp.task("sass:watch", function () { 64 gulp.watch([sassDest + "/core/**/*.scss"], ["sass_multi"]); 65 gulp.watch([sassDest + "/themes/light/**/*.scss"], ["sass_multi"]); 66 }); 67 68 gulp.task("browser_sync_init", function () { 69 browserSync({ 70 proxy: process.env.HOST 71 // proxy: 'http://localhost/302/d_toolkit/', 72 73 }); 74 }); 75 76 gulp.task("default", ["browser_sync_init"], function () { 77 if (typeof process.env.HOST !== "undefined") { 78 gulp.watch([ 79 baseDir + "/view/theme/default/template/extension/**/*.twig" 80 ], browserSync.reload); 81 } 82 gulp.start(["sass",'sass_multi', "sass:watch"]); 83 });