-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgulpfile.js
76 lines (60 loc) · 1.59 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
var fs = require('fs');
var path = require('path');
var gulp = require('gulp');
var shell = require('gulp-shell');
var webpack = require('gulp-webpack');
var jshint = require('gulp-jshint');
var mocha = require('gulp-mocha');
var uglify = require('gulp-uglify');
var gutil = require('gulp-util');
var through = require('through2');
var pkg;
try{
pkg = JSON.parse(fs.readFileSync('./package.json', 'utf8'))
pkg_bower = JSON.parse(fs.readFileSync('./bower.json', 'utf8'))
pkg_component = JSON.parse(fs.readFileSync('./component.json', 'utf8'))
}catch(e){}
var wpConfig = {
output: {
filename: "rehub.js",
library: "rehub",
libraryTarget: "umd"
}
}
gulp.task('jshint', function(){
// jshint
gulp.src(['src/**/*.js'])
.pipe(jshint())
.pipe(jshint.reporter('default'))
})
gulp.task("build", ["jshint"], function(){
gulp.src("src/index.js")
.pipe(webpack(wpConfig))
.pipe(wrap(signatrue))
.pipe(gulp.dest('dist/'))
.pipe(wrap(mini))
.pipe(uglify())
.pipe(gulp.dest('dist/'))
.on("error", function(err){
throw err
})
})
gulp.task('dev', function(){
gulp.watch(['src/**/*.js'], ['build'])
})
gulp.task('test', function(){
// todo
})
function wrap(fn){
return through.obj(fn);
}
function signatrue(file, enc, cb){
var sign = '/**\n'+ '@author\t'+ pkg.author.name + '\n'+ '@version\t'+ pkg.version +
'\n'+ '@homepage\t'+ pkg.homepage + '\n*/\n';
file.contents = Buffer.concat([new Buffer(sign), file.contents]);
cb(null, file);
}
function mini(file, enc, cb){
file.path = file.path.replace('.js', '.min.js');
cb(null, file)
}