-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
80 lines (60 loc) · 2 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
// npm i -save-dev gulp del gulp-zip gulp-sourcemaps uglify-es gulp-uglify pump
// npm i -g gulp-cli # required for gulp 4
const gulp = require('gulp'),
del = require('del'),
zip = require('gulp-zip');
const uglifyes = require('uglify-es');
const composer = require('gulp-uglify/composer');
const uglify = composer(uglifyes, console);
const pump = require('pump');
gulp.task('clear', () =>
del(['build/**/*'])
)
gulp.task('rootfiles', () => {
gulp.src('src/*.png')
.pipe(gulp.dest('build'))
return gulp.src('src/manifest.json')
.pipe(gulp.dest('build'))
})
gulp.task('html', () =>
gulp.src('src/*.html')
.pipe(gulp.dest('build'))
)
gulp.task('img', () =>
gulp.src('src/img/**/*')
.pipe(gulp.dest('build/img'))
)
gulp.task('locales', () =>
gulp.src('src/_locales/**/*')
.pipe(gulp.dest('build/_locales'))
)
gulp.task('extscripts', () => {
return gulp.src('src/js/ext/**/*.js')
.pipe(gulp.dest('build/js/ext'));
})
gulp.task('scripts', gulp.series('extscripts', (cb) => {
pump([
gulp.src(['src/js/**/*.js', '!src/js/ext/**/*.js']),
uglify({
mangle: false,
ecma: 6
}),
gulp.dest('build/js/')
], cb)
}))
gulp.task('styles', () => {
return gulp.src('src/css/**/*.css')
.pipe(gulp.dest('build/css'))
})
// Build ditributable ZIP, ready for upload to Developer Console
gulp.task('zip', gulp.series(gulp.parallel('html', 'scripts', 'styles', 'img', 'locales', 'rootfiles'), () => {
const manifest = require('./src/manifest'),
distFileName = `${__dirname.split("/").pop()}_${manifest.version}.zip`;
//build distributable extension
return gulp.src(['build/**', '!build/js/**/*.map'])
.pipe(zip(distFileName))
.pipe(gulp.dest('..')) // Save bundle to root
.pipe(gulp.dest('dist')) // Save copy of bundle in /dist
}))
// Run all tasks after build directory has been cleaned
gulp.task('default', gulp.series('clear', 'zip'))