@@ -4,25 +4,19 @@ var gulp = require('gulp');
44var browserSync = require ( 'browser-sync' ) ;
55< % if ( props . jsPreprocessor . key === 'typescript' ) { % >
66var mkdirp = require ( 'mkdirp' ) ;
7- < % } if ( props . jsPreprocessor . srcExtension === 'es6' ) { % >
8- var browserify = require ( 'browserify' ) ;
9- var source = require ( 'vinyl-source-stream' ) ;
10- var buffer = require ( 'vinyl-buffer' ) ;
11- < % } if ( props . jsPreprocessor . key === 'babel' ) { % >
12- var babelify = require ( 'babelify' ) ;
137< % } % >
148
159var $ = require ( 'gulp-load-plugins' ) ( ) ;
1610
1711module . exports = function ( options ) {
18- < % if ( props . jsPreprocessor . key === 'typescript' ) { % >
12+ < % if ( props . jsPreprocessor . srcExtension !== 'es6' ) { % >
13+ < % if ( props . jsPreprocessor . key === 'typescript' ) { % >
1914 gulp . task ( 'scripts' , [ 'tsd:install' ] , function ( ) {
2015 mkdirp . sync ( options . tmp ) ;
2116
22- < % } else { % >
17+ < % } else { % >
2318 gulp . task ( 'scripts' , function ( ) {
24- < % } % >
25- < % if ( props . jsPreprocessor . key !== 'babel' ) { % >
19+ < % } % >
2620 return gulp . src ( options . src + '/{app,components}/**/*.<%= props.jsPreprocessor.extension %>' )
2721< % if ( props . jsPreprocessor . extension === 'js' ) { % >
2822 . pipe ( $ . jshint ( ) )
@@ -53,33 +47,46 @@ module.exports = function(options) {
5347< % } % >
5448 . pipe ( browserSync . reload ( { stream : true } ) )
5549 . pipe ( $ . size ( ) ) ;
50+ } ) ;
5651< % } else { % >
57- return browserify ( { debug : true } )
58- . add ( './' + options . src + '/app/index.js' )
59- . transform ( babelify )
60- . bundle ( ) . on ( 'error' , options . errorHandler ( 'Browserify' ) )
61- . pipe ( source ( 'index.js' ) )
62- . pipe ( buffer ( ) )
63- . pipe ( $ . sourcemaps . init ( { loadMaps : true } ) )
64- . pipe ( $ . sourcemaps . write ( ) )
65- . pipe ( gulp . dest ( options . tmp + '/serve/app' ) )
66- . pipe ( browserSync . reload ( { stream : true } ) )
67- . pipe ( $ . size ( ) ) ;
68- < % } % >
52+ function webpack ( watch , callback ) {
53+ return gulp . src ( options . src + '/app/index.js' )
54+ . pipe ( $ . webpack ( {
55+ watch : watch ,
56+ module : {
57+ preLoaders : [ { test : / \. j s $ / , exclude : / n o d e _ m o d u l e s / , loader : 'jshint-loader' } ] ,
58+ < % if ( props. jsPreprocessor . key === 'babel' ) { % >
59+ loaders : [ { test : / \. j s $ / , exclude : / n o d e _ m o d u l e s / , loader : 'babel-loader' } ]
60+ < % } if ( props . jsPreprocessor . key === 'traceur' ) { % >
61+ loaders : [ { test : / \. j s $ / , exclude : / n o d e _ m o d u l e s / , loader : 'traceur-loader' } ]
62+ < % } % >
63+ } ,
64+ output : { filename : 'index.js' }
65+ } , null , function ( err , stats ) {
66+ if ( err ) {
67+ options . errorHandler ( 'Webpack' ) ( err ) ;
68+ }
69+ $ . util . log ( stats . toString ( {
70+ colors : $ . util . colors . supportsColor ,
71+ chunks : false ,
72+ hash : false ,
73+ version : false
74+ } ) ) ;
75+ browserSync . reload ( ) ;
76+ if ( watch ) {
77+ watch = false ;
78+ callback ( ) ;
79+ }
80+ } ) )
81+ . pipe ( gulp . dest ( options . tmp + '/serve/app' ) ) ;
82+ }
83+
84+ gulp . task ( 'scripts' , function ( ) {
85+ return webpack ( false ) ;
6986 } ) ;
7087
71- < % if ( props . jsPreprocessor . key === 'traceur' ) { % >
72- gulp . task ( 'browserify' , [ 'scripts' ] , function ( ) {
73- return browserify ( { debug : true } )
74- . add ( './' + options . tmp + '/<%= props.jsPreprocessor.key %>/app/index.js' )
75- . bundle ( ) . on ( 'error' , options . errorHandler ( 'Browserify' ) )
76- . pipe ( source ( 'index.js' ) )
77- . pipe ( buffer ( ) )
78- . pipe ( $ . sourcemaps . init ( { loadMaps : true } ) )
79- . pipe ( $ . sourcemaps . write ( ) )
80- . pipe ( gulp . dest ( options . tmp + '/serve/app' ) )
81- . pipe ( browserSync . reload ( { stream : true } ) )
82- . pipe ( $ . size ( ) ) ;
88+ gulp . task ( 'scripts:watch' , function ( callback ) {
89+ return webpack ( true , callback ) ;
8390 } ) ;
84- < % } % >
91+ < % } % >
8592} ;
0 commit comments