1
1
var gulp = require ( 'gulp-help' ) ( require ( 'gulp' ) ) ;
2
- var rename = require ( 'gulp-rename' ) ,
2
+ var header = require ( 'gulp-header' ) ,
3
+ rename = require ( 'gulp-rename' ) ,
3
4
concat = require ( 'gulp-concat' ) ,
4
5
uglify = require ( 'gulp-uglify' ) ,
5
6
jshint = require ( 'gulp-jshint' ) ,
@@ -11,12 +12,17 @@ var rename = require('gulp-rename'),
11
12
merge = require ( 'merge2' ) ,
12
13
karma = require ( 'karma' ) ,
13
14
paths = require ( './paths' ) ,
14
- webpack = require ( 'webpack-stream' ) ,
15
+ webpack = require ( 'webpack' ) ;
16
+ webpackStream = require ( 'webpack-stream' ) ,
15
17
webpackConfig = require ( './webpack.config' ) ,
16
18
runSequence = require ( 'run-sequence' ) ,
17
19
argv = require ( 'yargs' ) . argv ;
18
20
;
19
21
22
+ var package = require ( './package.json' ) ;
23
+ var webpackBanner = package . name + " v" + package . version + " | (c) 2016 Microsoft Corporation " + package . license ;
24
+ var gulpBanner = "/*! " + webpackBanner + " */\n" ;
25
+
20
26
gulp . task ( 'watch' , 'Watches for changes' , [ 'lint' ] , function ( ) {
21
27
gulp . watch ( [ './src/**/*.ts' , './test/**/*.ts' ] , [ 'lint:ts' ] ) ;
22
28
gulp . watch ( [ './test/**/*.ts' ] , [ 'test' ] ) ;
@@ -44,10 +50,17 @@ gulp.task('build', 'Runs a full build', function (done) {
44
50
'clean' ,
45
51
[ 'compile:ts' , 'compile:dts' ] ,
46
52
'min:js' ,
53
+ 'header' ,
47
54
done
48
55
) ;
49
56
} ) ;
50
57
58
+ gulp . task ( 'header' , 'Add header to distributed files' , function ( ) {
59
+ return gulp . src ( [ './dist/*.d.ts' ] )
60
+ . pipe ( header ( gulpBanner ) )
61
+ . pipe ( gulp . dest ( './dist' ) ) ;
62
+ } ) ;
63
+
51
64
gulp . task ( 'clean' , 'Cleans destination folder' , function ( done ) {
52
65
rimraf ( paths . jsDest , done ) ;
53
66
} ) ;
@@ -59,12 +72,14 @@ gulp.task('lint:ts', 'Lints all TypeScript', function() {
59
72
} ) ;
60
73
61
74
gulp . task ( 'min:js' , 'Creates minified JavaScript file' , function ( ) {
62
- return gulp . src ( paths . jsDest + paths . outFilename )
63
- . pipe ( sourcemaps . init ( { debug : true } ) )
64
- . pipe ( uglify ( ) )
65
- . pipe ( sourcemaps . write ( ) )
66
- . pipe ( rename ( { suffix : '.min' } ) )
67
- . pipe ( gulp . dest ( paths . jsDest ) ) ;
75
+ return gulp . src ( [ '!./dist/*.min.js' , './dist/*.js' ] )
76
+ . pipe ( uglify ( {
77
+ preserveComments : 'license'
78
+ } ) )
79
+ . pipe ( rename ( {
80
+ suffix : '.min'
81
+ } ) )
82
+ . pipe ( gulp . dest ( './dist' ) ) ;
68
83
} ) ;
69
84
70
85
gulp . task ( 'test:js' , 'Runs unit tests' , function ( done ) {
@@ -76,8 +91,12 @@ gulp.task('test:js', 'Runs unit tests', function(done) {
76
91
} ) ;
77
92
78
93
gulp . task ( 'compile:ts' , 'Compile typescript for powerbi library' , function ( ) {
94
+ webpackConfig . plugins = [
95
+ new webpack . BannerPlugin ( webpackBanner )
96
+ ] ;
97
+
79
98
return gulp . src ( [ './src/powerbi.ts' ] )
80
- . pipe ( webpack ( webpackConfig ) )
99
+ . pipe ( webpackStream ( webpackConfig ) )
81
100
. pipe ( gulp . dest ( 'dist/' ) ) ;
82
101
} ) ;
83
102
0 commit comments