-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
116 lines (103 loc) · 2.4 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
var $ = require('gulp-load-plugins')(),
gulp = require('gulp'),
map = require('map-stream'),
webpack = require('webpack-stream'),
Karma = require('karma').Server,
jshint = require('gulp-jshint'),
stylish = require('jshint-stylish');
var env = require('./config/env.js');
var server;
gulp.task('demo', function() {
return gulp.src(env.jsSrc)
.pipe(webpack({
entry: './'+env.demoConfig,
module: {
loaders: [{
test: /\.js$/,
loader: "babel-loader",
query: {
presets: ['env']
}
}],
},
output: {
filename: 'demo.js',
library: env.library,
libraryTarget: "var"
}
}))
.pipe(gulp.dest(env.demoDir));
});
gulp.task('library', function() {
return gulp.src(env.jsDemo)
.pipe(webpack({
entry: './'+env.libraryConfig,
module: {
loaders: [{
test: /\.js$/,
loader: "babel-loader",
query: {
presets: ['env']
}
}],
},
output: {
filename: env.name+'.js',
library: env.library,
libraryTarget: "var"
},
externals: env.externals
}))
.pipe(gulp.dest(env.distDir));
});
gulp.task('test-noexit', ['build'], function( done ) {
new Karma({
configFile: __dirname +'/'+ env.karmaConfig
},function(){
done();
}).start();
});
gulp.task('test', ['test-noexit'], function( done ) {
process.exit();
});
gulp.task('test-ie', ['build','test-server'], function( done ) {
new Karma({
configFile: __dirname +'/'+ env.karmaConfig,
browsers: ['IE']
}, function(){
done();
}).start();
});
var failOnError = function() {
return map(function(file, cb) {
if (!file.jshint.success) {
process.exit(1);
}
cb(null, file);
});
};
gulp.task('build-lint', function() {
gulp.src( env.jsSrc.map((d) => d.replace('!','')) )
.pipe( jshint() )
.pipe( jshint.reporter(stylish) )
.pipe( failOnError() );
});
gulp.task('lint', function() {
gulp.src( env.jsSrc.map((d) => d.replace('!','')) )
.pipe( jshint() )
.pipe( jshint.reporter(stylish) );
});
gulp.task('build', ['build-lint', 'demo','library'] );
gulp.task('watch', ['build'], function(){
gulp.watch(env.jsSrc.concat(['./'+env.demoConfig]), ['lint', 'demo','library']);
});
gulp.task('serve', ['watch','test-noexit'], function() {
gulp.src(env.demoDir)
.pipe($.webserver({
port: 9000,
host: 'localhost',
fallback: 'index.html',
livereload: true,
open: true
}))
});