-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
86 lines (74 loc) · 2.15 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
'use strict';
const gulp = require('gulp');
const del = require('del');
const rev = require('gulp-rev');
const revFormat = require('gulp-rev-format');
const cleanCSS = require('gulp-clean-css');
const uglify = require('gulp-uglify-es').default;
const pump = require('pump');
const revCollector = require('gulp-rev-collector');
const tar = require('gulp-tar');
const gzip = require('gulp-gzip');
const statics = [ 'app/public/src/img/**', 'app/public/src/css/third-party/**', 'app/public/src/js/third-party/**' ];
const publicDist = 'app/public/dist';
const cssDist = 'app/public/dist/css/custom';
const jsDist = 'app/public/dist/js/custom';
const tplDist = 'app/view/dist';
const buildDir = 'build/rev';
const formatOptions = {
prefix: '.',
suffix: '.min',
lastExt: false,
};
gulp.task('clean', function(cb) {
del.sync([ publicDist, tplDist, buildDir ], { force: true });
cb();
});
gulp.task('mvStatics', [ 'clean' ], function(cb) {
pump([
gulp.src(statics, { base: 'app/public/src' }),
gulp.dest(publicDist),
], cb);
});
gulp.task('devCss', [ 'mvStatics' ], function(cb) {
pump([
gulp.src('app/public/src/css/custom/*.css'),
cleanCSS({ compatibility: 'ie8' }),
rev(),
revFormat(formatOptions),
gulp.dest(cssDist),
rev.manifest({ path: 'rev-css-manifest.json' }),
gulp.dest(buildDir),
], cb);
});
gulp.task('devJs', [ 'devCss' ], function(cb) {
pump([
gulp.src('app/public/src/js/custom/*.js'),
uglify(),
rev(),
revFormat(formatOptions),
gulp.dest(jsDist),
rev.manifest({ path: 'rev-js-manifest.json' }),
gulp.dest(buildDir),
], cb);
});
gulp.task('devTpl', [ 'devJs' ], function(cb) {
pump([
gulp.src([ 'build/rev/*.json', 'app/view/src/**/*.tpl' ]),
revCollector({ revSuffix: '.[0-9a-f]{8,10}.min?' }),
gulp.dest(tplDist),
], cb);
});
gulp.task('default', [ 'clean', 'mvStatics', 'devCss', 'devJs', 'devTpl' ], () => {
gulp.src([
'./app/**',
'!./app/public/{src,src/**}',
'!./app/view/{src,src/**}',
'./config/**',
'./package.json',
'./package-lock.json',
], { base: './' })
.pipe(tar('archive.tar'))
.pipe(gzip())
.pipe(gulp.dest('.'));
});