@@ -17,10 +17,17 @@ var browserify = require('browserify');
1717var source = require ( 'vinyl-source-stream' ) ;
1818var merge = require ( 'merge-stream' ) ;
1919var collapse = require ( 'bundle-collapser/plugin' ) ;
20- var argv = require ( 'yargs' ) . argv
20+ var yargs = require ( 'yargs' ) ;
2121var path = require ( 'path' ) ;
22+ var fs = require ( 'fs' ) ;
2223var package = require ( './package.json' ) ;
2324
25+ var argv = yargs
26+ . option ( 'force-output' , { default : false } )
27+ . option ( 'silent-errors' , { default : false } )
28+ . option ( 'verbose' , { default : false } )
29+ . argv
30+
2431var srcDir = './src/' ;
2532var outDir = './dist/' ;
2633
@@ -34,6 +41,10 @@ var header = "/*!\n" +
3441 " * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md\n" +
3542 " */\n" ;
3643
44+ if ( argv . verbose ) {
45+ util . log ( "Gulp running with options: " + JSON . stringify ( argv , null , 2 ) ) ;
46+ }
47+
3748gulp . task ( 'bower' , bowerTask ) ;
3849gulp . task ( 'build' , buildTask ) ;
3950gulp . task ( 'package' , packageTask ) ;
@@ -79,9 +90,25 @@ function bowerTask() {
7990
8091function buildTask ( ) {
8192
93+ var errorHandler = function ( err ) {
94+ if ( argv . forceOutput ) {
95+ var browserError = 'console.error("Gulp: ' + err . toString ( ) + '")' ;
96+ [ 'Chart' , 'Chart.min' , 'Chart.bundle' , 'Chart.bundle.min' ] . forEach ( function ( fileName ) {
97+ fs . writeFileSync ( outDir + fileName + '.js' , browserError ) ;
98+ } ) ;
99+ }
100+ if ( argv . silentErrors ) {
101+ util . log ( util . colors . red ( '[Error]' ) , err . toString ( ) ) ;
102+ this . emit ( 'end' ) ;
103+ } else {
104+ throw err ;
105+ }
106+ }
107+
82108 var bundled = browserify ( './src/chart.js' , { standalone : 'Chart' } )
83109 . plugin ( collapse )
84110 . bundle ( )
111+ . on ( 'error' , errorHandler )
85112 . pipe ( source ( 'Chart.bundle.js' ) )
86113 . pipe ( insert . prepend ( header ) )
87114 . pipe ( streamify ( replace ( '{{ version }}' , package . version ) ) )
@@ -96,6 +123,7 @@ function buildTask() {
96123 . ignore ( 'moment' )
97124 . plugin ( collapse )
98125 . bundle ( )
126+ . on ( 'error' , errorHandler )
99127 . pipe ( source ( 'Chart.js' ) )
100128 . pipe ( insert . prepend ( header ) )
101129 . pipe ( streamify ( replace ( '{{ version }}' , package . version ) ) )
0 commit comments