11var app_url = 'http://dev.env/smartbots' ;
22
33var
4- elixir = require ( 'laravel-elixir' ) ,
5- gulp = require ( 'gulp' ) ,
6- htmlmin = require ( 'gulp-htmlmin' ) ,
7- gulpif = require ( 'gulp-if ' ) ;
4+ elixir = require ( 'laravel-elixir' ) ,
5+ gulp = require ( 'gulp' ) ,
6+ htmlmin = require ( 'gulp-htmlmin' ) ,
7+ imagemin = require ( 'gulp-imagemin ' ) ;
88
9- var vendor_dir = 'resources/assets/vendor/' ,
10- libs_dir = 'public/libs/' ,
11- js_dir = 'public/js/' ,
12- css_dir = 'public/css/' ;
9+ var
10+ vendor_dir = 'resources/assets/vendor/' ,
11+ libs_dir = 'public/libs/' ,
12+ js_dir = 'public/js/' ,
13+ css_dir = 'public/css/' ;
1314
14- var less = { // LESS file to compile => css
15+ var
16+ less = { // LESS file to compile => css
1517 'components.less' : 'components.css' ,
16- 'core.less' : 'core.css' ,
17- 'libs.less' : 'libs.css' ,
18+ 'core.less' : 'core.css' ,
19+ 'libs.less' : 'libs.css' ,
1820 'responsive.less' : 'responsive.css'
1921 } ,
2022
2123 js = { // JS file vendored => libs
22- 'jquery/dist/jquery.js' : 'jquery/jquery.js' , // 2
23- 'jquery-legacy/dist/jquery.js' : 'jquery-legacy/jquery.js' , // 1
24- 'jquery-modern/dist/jquery.js' : 'jquery-modern/jquery.js' , // 3
25- 'bootstrap/dist/js/bootstrap.js' : 'bootstrap/js/bootstrap.js' ,
26- 'jquery.scrollTo/jquery.scrollTo.js' : 'jquery.scrollTo/jquery.scrollTo.js' ,
27- 'jquery.nicescroll/jquery.nicescroll.min.js' : 'jquery.nicescroll/jquery.nicescroll.js' ,
28- 'slimscroll/jquery.slimscroll.js' : 'slimscroll/jquery.slimscroll.js' ,
29- 'fastclick/lib/fastclick.js' : 'fastclick/fastclick.js' ,
30- 'blockUI/jquery.blockUI.js' : 'blockUI/jquery.blockUI.js' ,
31- 'Waves/dist/waves.js' : 'Waves/waves.js' ,
32- 'wow/dist/wow.js' : 'wow/wow.js' ,
33- 'sweetalert/dist/sweetalert.min.js' : 'sweetalert/sweetalert.js' ,
34- 'multiselect/js/jquery.multi-select.js' : 'multiselect/js/jquery.multi-select.js' ,
35- 'typeahead.js/dist/typeahead.bundle.js' : 'typeahead.js/typeahead.bundle.js' ,
36- 'handlebars/handlebars.js' : 'handlebars/handlebars.js' ,
37- 'moment/moment.js' : 'moment/moment.js' ,
38- 'moment/locale/vi.js' : 'moment/vi.js' ,
39- 'quicksearch/jquery.quicksearch.js' : 'quicksearch/jquery.quicksearch.js' ,
24+ 'jquery/dist/jquery.js' : 'jquery/jquery.js' , // 2
25+ 'jquery-legacy/dist/jquery.js' : 'jquery-legacy/jquery.js' , // 1
26+ 'jquery-modern/dist/jquery.js' : 'jquery-modern/jquery.js' , // 3
27+ 'bootstrap/dist/js/bootstrap.js' : 'bootstrap/js/bootstrap.js' ,
28+ 'jquery.scrollTo/jquery.scrollTo.js' : 'jquery.scrollTo/jquery.scrollTo.js' ,
29+ 'jquery.nicescroll/jquery.nicescroll.min.js' : 'jquery.nicescroll/jquery.nicescroll.js' ,
30+ 'slimscroll/jquery.slimscroll.js' : 'slimscroll/jquery.slimscroll.js' ,
31+ 'fastclick/lib/fastclick.js' : 'fastclick/fastclick.js' ,
32+ 'blockUI/jquery.blockUI.js' : 'blockUI/jquery.blockUI.js' ,
33+ 'Waves/dist/waves.js' : 'Waves/waves.js' ,
34+ 'wow/dist/wow.js' : 'wow/wow.js' ,
35+ 'sweetalert/dist/sweetalert.min.js' : 'sweetalert/sweetalert.js' ,
36+ 'multiselect/js/jquery.multi-select.js' : 'multiselect/js/jquery.multi-select.js' ,
37+ 'typeahead.js/dist/typeahead.bundle.js' : 'typeahead.js/typeahead.bundle.js' ,
38+ 'handlebars/handlebars.js' : 'handlebars/handlebars.js' ,
39+ 'moment/moment.js' : 'moment/moment.js' ,
40+ 'moment/locale/vi.js' : 'moment/vi.js' ,
41+ 'quicksearch/jquery.quicksearch.js' : 'quicksearch/jquery.quicksearch.js' ,
4042 'eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js' : 'bootstrap-datetimepicker/bootstrap-datetimepicker.js' ,
41- 'bootstrap-select/dist/js/bootstrap-select.js' : 'bootstrap-select/bootstrap-select.js' ,
42- 'raven-js/dist/raven.js' : 'raven-js/raven.js' ,
43- 'amcharts3/amcharts/amcharts.js' : 'amcharts/amcharts.js' ,
44- 'amcharts3/amcharts/serial.js' : 'amcharts/serial.js' ,
45- 'socket.io-client/socket.io.js' : 'socket.io/socket.io.js' ,
46- 'intl-tel-input/build/js/intlTelInput.js' : 'intl-tel-input/js/intlTelInput.js' ,
47- 'notifyjs/dist/notify.js' : 'notifyjs/js/notify.js' ,
48- 'tinycon/tinycon.js' : 'tinycon/tinycon.js'
43+ 'bootstrap-select/dist/js/bootstrap-select.js' : 'bootstrap-select/bootstrap-select.js' ,
44+ 'raven-js/dist/raven.js' : 'raven-js/raven.js' ,
45+ 'amcharts3/amcharts/amcharts.js' : 'amcharts/amcharts.js' ,
46+ 'amcharts3/amcharts/serial.js' : 'amcharts/serial.js' ,
47+ 'socket.io-client/socket.io.js' : 'socket.io/socket.io.js' ,
48+ 'intl-tel-input/build/js/intlTelInput.js' : 'intl-tel-input/js/intlTelInput.js' ,
49+ 'notifyjs/dist/notify.js' : 'notifyjs/js/notify.js' ,
50+ 'tinycon/tinycon.js' : 'tinycon/tinycon.js'
4951
5052 } ,
5153
5254 css = { // CSS file vendored => libs
53- 'bootstrap/dist/css/bootstrap.css' : 'bootstrap/css/bootstrap.css' ,
54- 'font-awesome/css/font-awesome.css' : 'font-awesome/css/font-awesome.css' ,
55- 'themify-icons/css/themify-icons.css' : 'themify-icons/css/themify-icons.css' ,
56- 'Waves/dist/waves.css' : 'Waves/waves.css' ,
57- 'sweetalert/dist/sweetalert.css' : 'sweetalert/sweetalert.css' ,
58- 'animate.css/animate.css' : 'animate.css/animate.css' ,
59- 'multiselect/css/multi-select.css' : 'multiselect/css/multi-select.css' ,
55+ 'bootstrap/dist/css/bootstrap.css' : 'bootstrap/css/bootstrap.css' ,
56+ 'font-awesome/css/font-awesome.css' : 'font-awesome/css/font-awesome.css' ,
57+ 'themify-icons/css/themify-icons.css' : 'themify-icons/css/themify-icons.css' ,
58+ 'Waves/dist/waves.css' : 'Waves/waves.css' ,
59+ 'sweetalert/dist/sweetalert.css' : 'sweetalert/sweetalert.css' ,
60+ 'animate.css/animate.css' : 'animate.css/animate.css' ,
61+ 'multiselect/css/multi-select.css' : 'multiselect/css/multi-select.css' ,
6062 'eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css' : 'bootstrap-datetimepicker/bootstrap-datetimepicker.css' ,
61- 'bootstrap-select/dist/css/bootstrap-select.css' : 'bootstrap-select/bootstrap-select.css' ,
62- 'intl-tel-input/build/css/intlTelInput.css' : 'intl-tel-input/css/intlTelInput.css' ,
63- 'notifyjs/dist/styles/metro/notify-metro.css' : 'notifyjs/css/notify-metro.css' ,
63+ 'bootstrap-select/dist/css/bootstrap-select.css' : 'bootstrap-select/bootstrap-select.css' ,
64+ 'intl-tel-input/build/css/intlTelInput.css' : 'intl-tel-input/css/intlTelInput.css' ,
65+ 'notifyjs/dist/styles/metro/notify-metro.css' : 'notifyjs/css/notify-metro.css' ,
6466 } ,
6567
6668 assets = { // Assets file & folder vendored => libs
67- 'bootstrap/dist/fonts' : 'bootstrap/fonts' ,
68- 'font-awesome/fonts' : 'font-awesome/fonts' ,
69- 'themify-icons/fonts' : 'themify-icons/fonts' ,
70- 'multiselect/img' : 'multiselect/img' ,
69+ 'bootstrap/dist/fonts' : 'bootstrap/fonts' ,
70+ 'font-awesome/fonts' : 'font-awesome/fonts' ,
71+ 'themify-icons/fonts' : 'themify-icons/fonts' ,
72+ 'multiselect/img' : 'multiselect/img' ,
7173 'intl-tel-input/build/img' : 'intl-tel-input/img'
7274 } ,
7375
7476 jsx = { // JS (not vendored) files => js
75- 'jquery.core.js' : 'jquery.core.js' ,
76- 'jquery.app.js' : 'jquery.app.js' ,
77- 'jquery.custom.js' : 'jquery.custom.js'
77+ 'jquery.core.js' : 'jquery.core.js' ,
78+ 'jquery.app.js' : 'jquery.app.js' ,
79+ // 'jquery.custom.js' : 'jquery.custom.js'
7880 } ;
7981
80- elixir . extend ( 'compress ' , function ( ) {
81- new elixir . Task ( 'compress ' , function ( ) {
82+ elixir . extend ( 'htmlmin ' , function ( ) {
83+ new elixir . Task ( 'htmlmin ' , function ( ) {
8284 return gulp . src ( './storage/framework/views/*' )
8385 . pipe ( htmlmin ( {
8486 collapseWhitespace : true ,
@@ -91,9 +93,22 @@ elixir.extend('compress', function() {
9193 . watch ( './storage/framework/views/*' ) ;
9294} ) ;
9395
96+ elixir . extend ( 'imagemin' , function ( ) {
97+ new elixir . Task ( 'imagemin' , function ( ) {
98+ return gulp . src ( './public/images/*' )
99+ . pipe ( imagemin ( {
100+ progressive : true
101+ } ) )
102+ . pipe ( gulp . dest ( './public/images/' ) ) ;
103+ } )
104+ . watch ( './public/images/*' ) ;
105+ } ) ;
106+
94107elixir ( function ( mix ) {
95108
96- // mix.compress();
109+ mix . htmlmin ( ) ;
110+
111+ mix . imagemin ( ) ;
97112
98113 for ( var key in less ) {
99114 mix . less ( key , css_dir + less [ key ] , vendor_dir ) ;
@@ -116,7 +131,7 @@ elixir(function(mix) {
116131 }
117132
118133 mix . browserSync ( {
119- // online: false,
134+ online : false ,
120135 notify : false ,
121136 open : false ,
122137 proxy : app_url ,
0 commit comments