-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
39 lines (37 loc) · 1.47 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
const gulp = require("gulp");
const sass = require("gulp-sass");
const autoprefixer = require("gulp-autoprefixer");
const plumber = require('gulp-plumber');
const notify = require('gulp-notify');
const gcmq = require('gulp-group-css-media-queries');
const replace = require('gulp-string-replace');
const rename = require('gulp-rename');
gulp.task("sass", () => {
const src = "./*/scss/*.scss";
const dest = "./";
return gulp.src( src )
.pipe( plumber({ errorHandler: function(err) {
notify.onError({
title: "Gulp error in " + err.plugin,
message: err.toString()
})(err);
}}) )
.pipe( sass() )
.pipe( autoprefixer(
['last 2 versions'],
{ cascade: false }
) )
.pipe( gcmq() )
.pipe( replace(/content\s*:\s*("|')[^\\"']+("|')/g, data => {
const contentVal = data.match(/("|')[^\\"']+("|')/i);
let rawVal = contentVal[0].match(/[^\\"']+/i);
rawVal = escape(rawVal).toLowerCase().replace(/%u/g, "\\");
return "content: \"" + rawVal + "\";";
}) )
.pipe( rename( file => {
file.dirname = file.dirname.replace(/scss$/, "css");
}) )
.pipe( gulp.dest( dest ) )
.pipe( gulp.dest( dest ) )
.pipe( notify({ message: 'Styles task complete', onLast: true }) );
});