@@ -20,21 +20,56 @@ var ngAnnotate = require('gulp-ng-annotate')
2020var uglify = require ( 'gulp-uglify' )
2121var minifyCss = require ( 'gulp-minify-css' )
2222var merge = require ( 'merge-stream' )
23+ var concat = require ( 'gulp-concat' )
24+ var streamqueue = require ( 'streamqueue' )
25+ var minifyHtml = require ( 'gulp-minify-html' )
2326
2427var config = require ( './build.config.js' )
2528
26- gulp . task ( 'env' , function ( ) {
27- return gulp . src ( 'tpls/env.js' )
28- . pipe ( template ( {
29- apiUrl : env . BUILD_API_URL
30- } ) )
31- . pipe ( gulp . dest ( 'build/config' ) )
29+ gulp . task ( 'js' , function ( ) {
30+ return streamqueue ( { objectMode : true } ,
31+ gulp . src ( 'tpls/env.js' )
32+ . pipe ( template ( {
33+ apiUrl : env . BUILD_API_URL
34+ } ) ) ,
35+ gulp . src ( [ 'src/**/*.js' ] )
36+ )
37+ . pipe ( changed ( 'build' ) )
38+ . pipe ( gulp . dest ( 'build' ) )
3239} )
3340
34- gulp . task ( 'js' , function ( ) {
35- return gulp . src ( [ 'src/**/*.js' ] )
36- . pipe ( changed ( 'build' ) )
37- . pipe ( gulp . dest ( 'build' ) )
41+ gulp . task ( 'dist' , function ( ) {
42+ var js = streamqueue ( { objectMode : true } ,
43+ gulp . src ( [ 'src/**/*.js' ] ) ,
44+ gulp . src ( 'tpls/env.js' )
45+ . pipe ( template ( {
46+ apiUrl : env . DIST_API_URL
47+ } ) ) ,
48+ gulp . src ( 'src/**/*.tpl.html' )
49+ . pipe ( templateCache ( ) )
50+ )
51+ . pipe ( ngAnnotate ( ) )
52+ . pipe ( uglify ( ) )
53+ . pipe ( concat ( 'app.js' ) )
54+ . pipe ( gulp . dest ( 'dist' ) )
55+
56+ var css = gulp . src ( 'src/styles/main.styl' )
57+ . pipe ( plumber ( { errorHandler : notify . onError ( 'Error: <%= error.message %>' ) } ) )
58+ . pipe ( styl ( ) )
59+ . pipe ( autoprefixer ( ) )
60+ . pipe ( minifyCss ( ) )
61+ . pipe ( gulp . dest ( 'dist' ) )
62+
63+ var index = gulp . src ( 'src/index.html' )
64+ . pipe ( template ( {
65+ scripts : [ 'app.js' ] ,
66+ styles : [ 'main.css' ] ,
67+ env : 'dist'
68+ } ) )
69+ . pipe ( minifyHtml ( ) )
70+ . pipe ( gulp . dest ( 'dist' ) )
71+
72+ return merge ( js , css , index )
3873} )
3974
4075gulp . task ( 'styl' , function ( ) {
@@ -72,7 +107,7 @@ gulp.task('index', function () {
72107 . pipe ( template ( {
73108 scripts : scripts ,
74109 styles : styles ,
75- env : env
110+ env : 'build'
76111 } ) )
77112 . pipe ( gulp . dest ( 'build' ) )
78113 . pipe ( livereload ( ) )
@@ -100,13 +135,11 @@ gulp.task('resources', function () {
100135} )
101136
102137gulp . task ( 'build' , function ( cb ) {
103- runSequence ( [ 'env' , ' js', 'styl' , 'tpls' , 'vendor' , 'resources' ] , 'index' , cb )
138+ runSequence ( [ 'js' , 'styl' , 'tpls' , 'vendor' , 'resources' ] , 'index' , cb )
104139} )
105140
106141gulp . task ( 'watch' , function ( cb ) {
107- gulp . watch ( [ '.env' , 'tpls/env.js' ] , [ 'env' ] )
108-
109- gulp . watch ( 'src/**/*.js' , [ 'js' ] )
142+ gulp . watch ( [ '.env' , 'tpls/env.js' , 'src/**/*.js' ] , [ 'js' ] )
110143
111144 gulp . watch ( 'src/styles/**/*.styl' , [ 'styl' ] )
112145
0 commit comments