11var gulp = require ( 'gulp' ) ,
22 less = require ( 'gulp-less' ) ,
3- usemin = require ( 'gulp-usemin' ) ,
43 wrap = require ( 'gulp-wrap' ) ,
4+ watch = require ( 'gulp-watch' ) ,
5+ concat = require ( 'gulp-concat' ) ,
6+ uglify = require ( 'gulp-uglify' ) ,
57 connect = require ( 'gulp-connect' ) ,
6- watch = require ( 'gulp-watch' ) ;
8+ cssmin = require ( 'gulp-minify-css' ) ,
9+ templates = require ( 'gulp-angular-templates' ) ;
10+
11+ var vendors = [
12+ 'src/bower_components/angular/angular.js' ,
13+ 'src/bower_components/angular-cookies/angular-cookies.js' ,
14+ 'src/bower_components/angular-bootstrap/ui-bootstrap.js' ,
15+ 'src/bower_components/angular-bootstrap/ui-bootstrap-tpls.js' ,
16+ 'src/bower_components/angular-ui-router/release/angular-ui-router.js' ,
17+ ] ;
18+
19+ var styles = [
20+ 'src/bower_components/bootstrap/dist/css/bootstrap.css' ,
21+ 'src/bower_components/font-awesome/css/font-awesome.css' ,
22+ 'src/less/dashboard/variables.less' ,
23+ 'src/less/dashboard/mixins.less' ,
24+ 'src/less/dashboard/main.less' ,
25+ 'src/less/dashboard/loading.less' ,
26+ 'src/less/dashboard/content.less' ,
27+ 'src/less/dashboard/header.less' ,
28+ 'src/less/dashboard/sidebar.less' ,
29+ 'src/less/dashboard/widgets.less' ,
30+ 'src/less/dashboard/hamburg.less' ,
31+ ] ;
32+
33+ var fonts = [
34+ 'src/fonts/**.*' ,
35+ 'src/bower_components/bootstrap/dist/fonts/*.{ttf,woff,eof,svg}' ,
36+ 'src/bower_components/font-awesome/fonts/*.{ttf,woff,eof,svg}'
37+ ] ;
738
839var paths = {
9- js : 'src/js/**/*.*' ,
10- fonts : 'src/fonts/**.*' ,
40+ js : [ 'src/js/**/*.*' , 'dist/js/templates.js' ] ,
41+ files : [ 'src/index.html' ] ,
1142 images : 'src/img/**/*.*' ,
12- styles : 'src/less /**/*.less ' ,
13- index : 'src/index.html' ,
14- bower_fonts : 'src/bower_components/**/*.{ttf,woff,eof,svg}' ,
15- bower_components : 'src/bower_components/**/*.*' ,
43+ templates : 'src/templates /**/*.html ' ,
44+ fonts : fonts ,
45+ styles : styles ,
46+ vendors : vendors
1647} ;
1748
49+ // The name of the Angular module which will be injected into the templates.
50+ var moduleName = 'Dashboard' ;
1851
19- gulp . task ( 'usemin' , function ( ) {
20- return gulp . src ( paths . index )
21- . pipe ( usemin ( {
22- less : [ 'concat' , less ( ) ] ,
23- js : [ 'concat' , wrap ( '(function(){ \n<%= contents %>\n})();' ) ] ,
24- } ) )
25- . pipe ( gulp . dest ( 'dist/' ) ) ;
52+ // Minify and copy all 3rd party libs to vendors.min.js
53+ gulp . task ( 'copy-vendors' , function ( ) {
54+ return gulp . src ( paths . vendors )
55+ . pipe ( uglify ( ) )
56+ . pipe ( concat ( 'vendors.min.js' ) )
57+ . pipe ( gulp . dest ( 'dist/js' ) ) ;
2658} ) ;
2759
28- /**
29- * Copy assets
30- */
31- gulp . task ( 'copy-assets' , [ 'copy-images' , 'copy-fonts' , 'copy-bower_fonts' ] ) ;
60+ // Minify and copy all dashboard script files to dashboard.min.js
61+ gulp . task ( 'copy-scripts' , function ( ) {
62+ return gulp . src ( paths . js )
63+ . pipe ( uglify ( ) )
64+ . pipe ( concat ( 'dashboard.min.js' ) )
65+ . pipe ( gulp . dest ( 'dist/js' ) ) ;
66+ } ) ;
3267
68+ // Minify and copy all angular templates to templates.min.js
69+ gulp . task ( 'copy-templates' , function ( ) {
70+ return gulp . src ( paths . templates )
71+ . pipe ( templates ( { module : moduleName } ) )
72+ . pipe ( uglify ( ) )
73+ . pipe ( concat ( 'templates.min.js' ) )
74+ . pipe ( gulp . dest ( 'dist/js' ) ) ;
75+ } ) ;
76+
77+ // Copy all static/HTML files to output directory
78+ gulp . task ( 'copy-files' , function ( ) {
79+ return gulp . src ( paths . files )
80+ . pipe ( gulp . dest ( 'dist' ) ) ;
81+ } ) ;
82+
83+ // Copy all images to output directory
3384gulp . task ( 'copy-images' , function ( ) {
3485 return gulp . src ( paths . images )
3586 . pipe ( gulp . dest ( 'dist/img' ) ) ;
3687} ) ;
3788
89+ // Copy all fonts to output directory
3890gulp . task ( 'copy-fonts' , function ( ) {
3991 return gulp . src ( paths . fonts )
4092 . pipe ( gulp . dest ( 'dist/fonts' ) ) ;
4193} ) ;
4294
43- gulp . task ( 'copy-bower_fonts' , function ( ) {
44- return gulp . src ( paths . bower_fonts )
45- . pipe ( gulp . dest ( 'dist/lib' ) ) ;
95+ // Compile less styles into dashboard.css
96+ gulp . task ( 'compile-less' , function ( ) {
97+ return gulp . src ( paths . styles )
98+ . pipe ( less ( ) )
99+ . pipe ( cssmin ( ) )
100+ . pipe ( concat ( 'dashboard.min.css' ) )
101+ . pipe ( gulp . dest ( 'dist/css' ) ) ;
46102} ) ;
47103
48104/**
49105 * Watch src
50106 */
51107gulp . task ( 'watch' , function ( ) {
52- gulp . watch ( [ paths . styles , paths . index , paths . js ] , [ 'usemin' ] ) ;
53- gulp . watch ( [ paths . images ] , [ 'copy-images' ] ) ;
54- gulp . watch ( [ paths . fonts ] , [ 'copy-fonts' ] ) ;
55- gulp . watch ( [ paths . bower_fonts ] , [ 'copy-bower_fonts' ] ) ;
108+ gulp . watch ( paths . vendors , [ 'copy-vendors' ] ) ;
109+ gulp . watch ( paths . js , [ 'copy-scripts' ] ) ;
110+ gulp . watch ( paths . templates , [ 'copy-templates' ] ) ;
111+ gulp . watch ( paths . files , [ 'copy-files' ] ) ;
112+ gulp . watch ( paths . images , [ 'copy-images' ] ) ;
113+ gulp . watch ( paths . fonts , [ 'copy-fonts' ] ) ;
114+ gulp . watch ( paths . styles , [ 'compile-less' ] ) ;
56115} ) ;
57116
58117gulp . task ( 'webserver' , function ( ) {
@@ -68,14 +127,5 @@ gulp.task('livereload', function() {
68127 . pipe ( connect . reload ( ) ) ;
69128} ) ;
70129
71- /**
72- * Compile less
73- */
74- gulp . task ( 'compile-less' , function ( ) {
75- return gulp . src ( paths . styles )
76- . pipe ( less ( ) )
77- . pipe ( gulp . dest ( 'dist/css' ) ) ;
78- } ) ;
79-
80- gulp . task ( 'build' , [ 'usemin' , 'copy-assets' ] ) ;
130+ gulp . task ( 'build' , [ 'copy-vendors' , 'copy-scripts' , 'copy-templates' , 'copy-files' , 'copy-images' , 'copy-fonts' , 'compile-less' ] ) ;
81131gulp . task ( 'default' , [ 'build' , 'webserver' , 'livereload' , 'watch' ] ) ;
0 commit comments