@@ -17,12 +17,12 @@ var sourcemaps = require('gulp-sourcemaps');
1717
1818// Static Server + watching scss/html files
1919gulp . task ( 'serve' , [ 'sass' , 'js' ] , function ( ) {
20- browserSync . init ( {
21- server : './public'
22- } ) ;
23- gulp . watch ( 'app/**/*.scss' , [ 'sass' ] ) ;
24- gulp . watch ( 'app/**/*.js' , [ 'js' ] ) ;
25- gulp . watch ( 'public/*.html' ) . on ( 'change' , browserSync . reload ) ;
20+ browserSync . init ( {
21+ server : './public'
22+ } ) ;
23+ gulp . watch ( 'app/**/*.scss' , [ 'sass' ] ) ;
24+ gulp . watch ( 'app/**/*.js' , [ 'js' ] ) ;
25+ gulp . watch ( 'public/*.html' ) . on ( 'change' , browserSync . reload ) ;
2626} ) ;
2727
2828// Run lint for sass
@@ -44,41 +44,41 @@ gulp.task('jslint', function() {
4444
4545// Min js files
4646gulp . task ( 'uglify' , [ 'js' ] , function ( ) {
47- gulp . src ( './public/js/app .js' )
48- . pipe ( uglify ( ) )
49- . pipe ( concat ( 'app.min .js' ) )
50- . pipe ( gulp . dest ( './public/js' ) )
47+ return gulp . src ( './public/js/build .js' )
48+ . pipe ( uglify ( ) )
49+ . pipe ( concat ( 'build .js' ) )
50+ . pipe ( gulp . dest ( './public/js' ) )
5151} ) ;
5252
5353// Min css files
5454gulp . task ( 'minify-css' , [ 'sass' ] , function ( ) {
55- gulp . src ( './public/css/main.css' )
56- . pipe ( cleanCSS ( ) )
57- . pipe ( concat ( 'main.min .css' ) )
58- . pipe ( gulp . dest ( './public/css' ) )
59- } )
55+ return gulp . src ( './public/css/main.css' )
56+ . pipe ( cleanCSS ( ) )
57+ . pipe ( concat ( 'main.css' ) )
58+ . pipe ( gulp . dest ( './public/css' ) )
59+ } ) ;
6060
6161// Compile sass into CSS & auto-inject into browsers
6262gulp . task ( 'sass' , [ 'stylelint' ] , function ( ) {
63- return gulp . src ( './app/main.scss' )
64- . pipe ( sass ( ) . on ( 'error' , sass . logError ) )
65- . pipe ( autoprefixer ( {
66- browsers : [ 'last 2 versions' ] ,
67- cascade : false
68- } ) )
69- . pipe ( sourcemaps . init ( { loadMaps : true } ) )
70- . pipe ( sourcemaps . write ( './' ) )
71- . pipe ( gulp . dest ( './public/css' ) )
72- . pipe ( browserSync . stream ( ) )
73- . pipe ( notify ( { message : 'CSS created!' , onLast : true } ) ) ;
63+ return gulp . src ( './app/main.scss' )
64+ . pipe ( sass ( ) . on ( 'error' , sass . logError ) )
65+ . pipe ( autoprefixer ( {
66+ browsers : [ 'last 2 versions' ] ,
67+ cascade : false
68+ } ) )
69+ . pipe ( sourcemaps . init ( { loadMaps : true } ) )
70+ . pipe ( sourcemaps . write ( './' ) )
71+ . pipe ( gulp . dest ( './public/css' ) )
72+ . pipe ( browserSync . stream ( ) )
73+ . pipe ( notify ( { message : 'CSS created!' , onLast : true } ) ) ;
7474} ) ;
7575
7676// Transpile ES6 js (React app) into JS & auto-inject into browsers
7777gulp . task ( 'js' , [ 'jslint' ] , function ( ) {
7878 var bundler = browserify ( './app/app.js' ) . transform ( "babelify" , { presets : [ "es2015" , "react" ] } ) ;
7979 return bundler . bundle ( )
8080 . on ( 'error' , function ( err ) { console . error ( err ) ; this . emit ( 'end' ) ; } )
81- . pipe ( source ( 'app .js' ) )
81+ . pipe ( source ( 'build .js' ) )
8282 . pipe ( buffer ( ) )
8383 . pipe ( sourcemaps . init ( { loadMaps : true } ) )
8484 . pipe ( sourcemaps . write ( './' ) )
@@ -87,5 +87,20 @@ gulp.task('js', ['jslint'], function() {
8787 . pipe ( notify ( { message : 'JS bundle created!' , onLast : true } ) ) ;
8888} ) ;
8989
90+ // PRODUCTION
91+ gulp . task ( 'set-prod-node-env' , function ( ) {
92+ return process . env . NODE_ENV = 'production' ;
93+ } ) ;
94+
95+ gulp . task ( 'production' , [ 'uglify' , 'minify-css' , 'set-prod-node-env' ] ) ;
96+
97+ // Start server without build
98+ gulp . task ( 'start' , [ 'production' ] , function ( ) {
99+ browserSync . init ( {
100+ server : './public'
101+ } ) ;
102+ } ) ;
103+
90104// Tasks
91105gulp . task ( 'default' , [ 'serve' ] ) ;
106+
0 commit comments