-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathgulpfile.js
75 lines (67 loc) · 2.07 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
var gulp = require('gulp');
// 引入组件
var less = require('gulp-less'), // less
minifycss = require('gulp-minify-css'), // CSS压缩
uglify = require('gulp-uglify'), // js压缩
concat = require('gulp-concat'), // 合并文件
rename = require('gulp-rename'), // 重命名
clean = require('gulp-clean'); //清空文件夹
jshint = require('gulp-jshint');
// less解析
gulp.task('build-less', function() {
gulp.src('public/less/*.less')
.pipe(less())
.pipe(gulp.dest('public/build/css'))
});
//jshint
//gulp.task('lint', function() {
// gulp.src('public/javascripts/*/*.js')
// .pipe(jshint())
// .pipe(jshint.reporter('default'));
//});
// 合并、压缩、重命名css
gulp.task('stylesheets', ['build-less'], function() {
gulp.src(['public/build/css/*.css'])
.pipe(concat('all.css'))
.pipe(gulp.dest('public/build/compressCss/'))
.pipe(rename({
suffix: '.min'
}))
.pipe(minifycss())
.pipe(gulp.dest('public/build/compressCss'));
});
// 合并,压缩js文件
gulp.task('javascripts', function() {
gulp.src('public/javascripts/*/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('public/build/js'))
.pipe(rename({
suffix: '.min'
}))
.pipe(uglify())
.pipe(gulp.dest('public/build/js'));
});
// 清空图片、样式、js
gulp.task('clean', function() {
return gulp.src(['public/build/css/all.css', 'public/build/css/all.min.css'], {
read: false
})
.pipe(clean({
force: true
}));
});
// 定义develop任务在日常开发中使用
gulp.task('develop', function() {
gulp.run('build-less', 'javascripts', 'stylesheets');
gulp.watch('public/less/*.less', ['build-less']);
});
// 定义一个prod任务作为发布或者运行时使用
gulp.task('prod', function() {
gulp.run('build-less', 'stylesheets', 'javascripts');
// 监听.less文件,一旦有变化,立刻调用build-less任务执行
gulp.watch('public/less/*.less', ['build-less']);
});
// gulp命令默认启动的就是default认为,这里将clean任务作为依赖,也就是先执行一次clean任务,流程再继续.
gulp.task('default', ['clean'], function() {
gulp.run('develop');
});