-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
64 lines (55 loc) · 1.82 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
var gulp = require('gulp'),
runSequence = require('run-sequence'),
rev = require('gulp-rev'),
revCollector = require('gulp-rev-collector'),
clean = require('gulp-clean'),
pump = require('pump');
//定义css、js源文件路径
var cssSrc = './*.css',
jsSrc = './*.js';
//CSS生成文件hash编码并生成 rev-manifest.json文件名对照映射
gulp.task('revCss', function(){
return gulp.src(cssSrc)
.pipe(rev())
.pipe(gulp.dest('./rev/css'))
.pipe(rev.manifest())
.pipe(gulp.dest('./rev/css'));
});
//js生成文件hash编码并生成 rev-manifest.json文件名对照映射
gulp.task('revJs', function(){
return gulp.src(jsSrc)
.pipe(rev()) //给文件添加hash编码
.pipe(gulp.dest('./rev/js'))
.pipe(rev.manifest()) //生成rev-mainfest.json文件作为记录
.pipe(gulp.dest('./rev/js'));
});
//Html替换css、js文件版本
gulp.task('revHtmlCss', function () {
return gulp.src(['./rev/css/*.json', './index.html'])
.pipe(revCollector()) //替换html中对应的记录
.pipe(gulp.dest('./rev')); //输出到该文件夹中
});
gulp.task('revHtmlJs', function () {
return gulp.src(['./rev/js/*.json', './rev/index.html'])
.pipe(revCollector())
.pipe(gulp.dest('./rev'));
});
//清除旧版本文件
gulp.task('clean', function(cb) {
pump([
gulp.src('./rev'),
clean()
], cb)
});
//开发构建
gulp.task('default', function (done) {
condition = false;
//依次顺序执行
runSequence(
['clean'],
['revCss'],
['revHtmlCss'],
['revJs'],
['revHtmlJs'],
done);
});