-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathgulpfile.js
More file actions
106 lines (93 loc) · 2.82 KB
/
gulpfile.js
File metadata and controls
106 lines (93 loc) · 2.82 KB
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
const gulp = require('gulp')
const pkg = require('./package.json')
const webpack = require('webpack-stream')
const minifyHTML = require('gulp-minify-html')
const imagemin = require('gulp-imagemin')
const concat = require('gulp-concat')
const extend = require('gulp-extend')
const uglify = require('gulp-uglify')
const plumber = require('gulp-plumber')
const header = require('gulp-header')
const replace = require('gulp-replace')
const del = require('del')
const zip = require('gulp-zip')
const env = require('gulp-env')
gulp.task('config', () => {
console.log('copy config file.')
return gulp.src('./src/**/*.json')
.pipe(replace('{{VERSION}}', pkg.version))
.pipe(gulp.dest('./build'))
})
gulp.task('config-dev', () => {
console.log('copy config file (dev).')
gulp.src('./src/**/*.json')
.pipe(gulp.dest('./build'))
return gulp.src(['./src/manifest.json', './dev_auth_key.json'])
.pipe(replace('{{VERSION}}', pkg.version))
.pipe(extend('manifest.json'))
.pipe(gulp.dest('./build'))
})
gulp.task('html', () => {
console.log('minify html.')
return gulp.src('./src/**/*.html')
.pipe(minifyHTML({conditionals : true}))
.pipe(gulp.dest('./build'))
})
gulp.task('img', () => {
console.log('minify image.')
return gulp.src('./src/img/*')
.pipe(imagemin())
.pipe(gulp.dest('./build/img'))
})
gulp.task('js', () => {
console.log('build js.')
const envs = env.set({
NODE_ENV: 'production'
})
return gulp.src('./src/index.js')
.pipe(plumber())
.pipe(envs)
.pipe(webpack(require('./webpack.config.js')))
.pipe(uglify())
.pipe(header('/* copyright (c)tearoom6 2015 */'))
.pipe(envs.reset)
.pipe(gulp.dest('./build'))
})
gulp.task('js-dev', () => {
console.log('build js (dev).')
const envs = env.set({
NODE_ENV: 'development'
})
return gulp.src('./src/index.js')
.pipe(plumber())
.pipe(envs)
.pipe(webpack(require('./webpack.config.js')))
.pipe(header('/* copyright (c)tearoom6 2015 */'))
.pipe(envs.reset)
.pipe(gulp.dest('./build'))
})
gulp.task('zip', () => {
console.log('compress package.')
return gulp.src('./build/**/*')
.pipe(zip(pkg.name + '-' + pkg.version + '.zip'))
.pipe(gulp.dest('./dist'))
})
gulp.task('clean', (callback) => {
console.log('clean.')
return del(['build', '.tmp', 'dist'], callback)
})
gulp.task('build', gulp.series(
'clean',
gulp.parallel('config', 'html', 'img', 'js'),
(callback) => { callback() }
))
gulp.task('build-dev', gulp.series(
'clean',
gulp.parallel('config-dev', 'html', 'img', 'js-dev'),
(callback) => { callback() }
))
gulp.task('watch', () => {
gulp.watch('./src/**/*.html', gulp.task('html'))
gulp.watch('./src/**/*.js', gulp.task('js-dev'))
})
gulp.task('default', gulp.task('build'))