-
Notifications
You must be signed in to change notification settings - Fork 46
/
gulpfile.js
86 lines (72 loc) 路 2.01 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
'use strict';
const gulp = require('gulp');
const sass = require('gulp-sass');
const cssnano = require('gulp-cssnano');
const concat = require('gulp-concat');
const gulpStylelint = require('gulp-stylelint');
const sourcemaps = require('gulp-sourcemaps');
const autoprefixer = require('gulp-autoprefixer');
const eol = require('gulp-eol');
const cssfmt = require('gulp-cssfmt');
const del = require('del');
const request = require('request');
const fs = require('fs');
gulp.task('default', ['down-normalize', 'down-tip', 'lint-css']);
gulp.task('down-normalize', function() {
fs.access('css/normalize.css', fs.F_OK, function(err) {
if(!err) {
return err;
} else {
return request('https://necolas.github.io/normalize.css/4.1.1/normalize.css')
.pipe(fs.createWriteStream('css/normalize.css'));
}
});
});
gulp.task('down-tip', function() {
fs.access('css/bmin.css', fs.F_OK, function(err) {
if(!err) {
return err;
} else {
return request('https://cdnjs.cloudflare.com/ajax/libs/balloon-css/0.2.4/balloon.min.css')
.pipe(fs.createWriteStream('css/bmin.css'));
}
});
});
gulp.task('sass', ['clean'], function() {
return gulp.src('lib/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass().on('error', sass.logError))
.pipe(sourcemaps.write())
.pipe(cssfmt())
.pipe(eol())
.pipe(gulp.dest('css'));
});
gulp.task('css-min', ['sass', 'down-normalize', 'down-tip'], function() {
return gulp.src(['css/normalize.css', 'css/**/*.css'])
.pipe(autoprefixer({
browsers: ['last 3 versions']
}))
.pipe(cssnano())
.pipe(concat('wmin.css'))
.pipe(gulp.dest('min'));
});
gulp.task('lint-css', ['css-min'], function lintCssTask() {
return gulp
.src(['css/**/*.css', '!css/normalize.css', '!css/bmin.css'])
.pipe(gulpStylelint({
reporters: [{
failAfterError: false,
formatter: 'string',
console: true
}]
}));
});
gulp.task('clean', function() {
return del([
'min/**/*',
'css/**/*',
'!css/normalize.css',
'!css/bmin.css'
]);
});
gulp.watch('lib/**/*.scss', ['default']);