This repository has been archived by the owner on May 12, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathgulpfile.js
82 lines (73 loc) · 1.98 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
const gulp = require('gulp');
const del = require('del')
const rev = require('gulp-rev')
const cleanCss = require('gulp-clean-css')
const terser = require('gulp-terser')
const uploadQcloud = require('gulp-qcloud-cos-upload')
const revCollector = require('gulp-rev-collector')
const qcloud = require('./qcloud.json')
const cp = require("child_process")
function clean(cb) {
return del(['./dist'], cb)
}
function build_js() {
return gulp.src('app/static/js/*.js')
.pipe(terser())
.pipe(rev())
.pipe(gulp.dest('dist'))
.pipe(rev.manifest({
path: 'dist/rev-manifest.json',
base: 'dist',
merge: true
}))
.pipe(gulp.dest('dist'))
}
function build_css() {
return gulp.src('app/static/css/*.css')
.pipe(cleanCss({ inline: ['none'] }))
.pipe(rev())
.pipe(gulp.dest('dist'))
.pipe(rev.manifest({
path: 'dist/rev-manifest.json',
base: 'dist',
merge: true
}))
.pipe(gulp.dest('dist'))
}
function upload() {
return gulp.src('*.*', { cwd: 'dist' })
.pipe(uploadQcloud({
AppId: qcloud.AppId,
SecretId: qcloud.SecretId,
SecretKey: qcloud.SecretKey,
Bucket: qcloud.Bucket,
Region: qcloud.Region,
prefix: qcloud.prefix
}))
}
function rev_collect() {
return gulp.src(['dist/rev-manifest.json', 'app/template/*.html'])
.pipe(revCollector({
'replaceReved': true,
'dirReplacements': {
'/css/': 'https://jackeriss-1252826939.file.myqcloud.com/' + qcloud.prefix + '/',
'/js/': 'https://jackeriss-1252826939.file.myqcloud.com/' + qcloud.prefix + '/',
'/image/': 'https://jackeriss-1252826939.file.myqcloud.com/' + qcloud.prefix + '/'
}
}))
.pipe(gulp.dest('app/template/dist'))
}
function install() {
return cp.exec('pipenv install --deploy')
}
function start() {
return cp.exec('/usr/local/bin/pm2 startOrReload pm2.json')
}
exports.default = gulp.series(
clean,
gulp.parallel(build_js, build_css),
upload,
rev_collect,
install,
start
)