-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
52 lines (42 loc) · 1.5 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
/*jshint node:true*/
var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var es = require('event-stream');
var lazypipe = require('lazypipe');
var path = require('path');
var base = {base: 'src/'};
var dest = 'extension';
gulp.task('copy', () => gulp.src([
'src/manifest.json',
'src/icon_128.png',
'src/**/*.css', '!src/bower/**'], base)
.pipe(gulp.dest(dest)));
gulp.task('html', () => gulp.src('src/*.html', base)
.pipe($.plumber())
.pipe($.htmlReplace({js: {src: null, tpl: '<script src="%f.js"></script>'}}))
.pipe($.htmlmin())
.pipe(gulp.dest(dest)));
var js = lazypipe()
.pipe($.plumber)
.pipe($.babel)
.pipe($.ngAnnotate)
.pipe($.uglify);
var bower = lazypipe()
.pipe($.plumber)
.pipe($.uglify, {compress: false});
gulp.task('js', () => gulp.src('src/*.html')
.pipe(es.map((file, cb) => {
es.readArray([file])
.pipe($.domSrc.duplex({selector:'script', attribute: 'src', cwd: 'src/'}))
.pipe($.plumber())
.pipe($.if(/bower/, bower(), js()))
.pipe($.ngTemplateStrings({cwd: 'src/'}))
.pipe($.concat(path.basename(file.path, '.html') + '.js'))
.pipe(gulp.dest(dest))
.on('end', () => cb());
})));
gulp.task('zip', ['copy', 'html', 'js'], () => gulp.src(dest + '/**/*')
.pipe($.zip('extension.zip'))
.pipe(gulp.dest('./')));
gulp.task('default', ['copy', 'html', 'js', 'zip']);
gulp.task('clean', () => require('del')([dest, 'extension.zip']));