-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
54 lines (46 loc) · 1.74 KB
/
index.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
var sequence = require('run-sequence');
var color = require('cli-color');
var invariant = require('invariant');
var rename = require('gulp-rename');
var rubySass = require('gulp-ruby-sass');
var util = require('gulp-util');
module.exports = function(gulp, opts){
var config = opts.config;
invariant(
config.sass && typeof config.sass === 'object'
&& config.sass.srcDir && config.sass.target
&& config.sass.distDir && config.sass.distFilename && config.sass.loadPaths,
'{srcDir, target, distDir, distFilename, loadPaths} in config[\'sass\'] is required.');
gulp.task('sass', function(cb){
sequence('ruby-sass', cb);
});
gulp.task('watch-sass', ['css-rebundle'], function() {
return gulp.watch(
[config.sass.srcDir+'/**/*.scss'],
['css-rebundle']);
});
gulp.task('css-rebundle', function(cb){
sequence('ruby-sass', function(){
hightlight("Finished bundling for \'watch-sass\'");
cb.apply(null, arguments);
});
});
gulp.task('ruby-sass', function() {
return rubySass(config.sass.target,
{
bundleExec: config.sass.bundleExec || false,
sourcemap: config.debug || false,
loadPath: [
config.sass.srcDir
].concat(config.sass.loadPaths)
})
.pipe(rename(config.sass.distFilename|| 'bundle.css'))
.pipe(gulp.dest(config.sass.distDir));
});
function hightlight(prefix){
var c = ['bgRed', 'bgGreen', 'bgYellow', 'bgBlue', 'bgMagenta', 'bgCyan', 'bgWhite'];
var r = Math.floor(Math.random() * 7);
var e = color.black[c[r]](prefix);
util.log(e);
}
}