@@ -10,6 +10,8 @@ var replace = require('gulp-replace');
1010var injectPartials = require ( 'gulp-inject-partials' ) ;
1111var inject = require ( 'gulp-inject' ) ;
1212var sourcemaps = require ( 'gulp-sourcemaps' ) ;
13+ var concat = require ( 'gulp-concat' ) ;
14+ var merge = require ( 'merge-stream' ) ;
1315
1416gulp . paths = {
1517 dist : 'dist' ,
@@ -20,7 +22,7 @@ var paths = gulp.paths;
2022
2123
2224// Static Server + watching scss/html files
23- gulp . task ( 'serve' , [ 'sass' ] , function ( ) {
25+ gulp . task ( 'serve' , [ 'sass' ] , function ( ) {
2426
2527 browserSync . init ( {
2628 port : 3000 ,
@@ -38,7 +40,7 @@ gulp.task('serve', ['sass'], function() {
3840
3941
4042// Static Server without watching scss files
41- gulp . task ( 'serve:lite' , function ( ) {
43+ gulp . task ( 'serve:lite' , function ( ) {
4244
4345 browserSync . init ( {
4446 server : "./" ,
@@ -71,45 +73,111 @@ gulp.task('sass:watch', function () {
7173
7274
7375/*sequence for injecting partials and replacing paths*/
74- gulp . task ( 'inject' , function ( ) {
75- runSequence ( 'injectPartial' , 'injectAssets' , 'replacePath' ) ;
76+ gulp . task ( 'inject' , function ( ) {
77+ runSequence ( 'injectPartial' , 'injectAssets' , 'replacePath' ) ;
7678} ) ;
7779
7880
7981
8082/* inject partials like sidebar and navbar */
8183gulp . task ( 'injectPartial' , function ( ) {
82- return gulp . src ( "./**/*.html" , { base : "./" } )
83- . pipe ( injectPartials ( ) )
84- . pipe ( gulp . dest ( "." ) ) ;
84+ return gulp . src ( "./**/*.html" , {
85+ base : "./"
86+ } )
87+ . pipe ( injectPartials ( ) )
88+ . pipe ( gulp . dest ( "." ) ) ;
8589} ) ;
8690
8791
8892
8993/* inject Js and CCS assets into HTML */
9094gulp . task ( 'injectAssets' , function ( ) {
91- return gulp . src ( './**/*.html' )
92- . pipe ( inject ( gulp . src ( [ './node_modules/mdi/css/materialdesignicons.min.css' , './node_modules/simple-line-icons/css/simple-line-icons.css' , './node_modules/perfect-scrollbar/css/perfect-scrollbar.css' , './node_modules/jquery/dist/jquery.min.js' , './node_modules/popper.js/dist/umd/popper.min.js' , './node_modules/bootstrap/dist/js/bootstrap.min.js' , './node_modules/perfect-scrollbar/dist/perfect-scrollbar.min.js' ] , { read : false } ) , { name : 'plugins' , relative : true } ) )
93- . pipe ( inject ( gulp . src ( [ './css/*.css' , './js/off-canvas.js' , './js/misc.js' ] , { read : false } ) , { relative : true } ) )
94- . pipe ( gulp . dest ( '.' ) ) ;
95+ return gulp . src ( './**/*.html' )
96+ . pipe ( inject ( gulp . src ( [
97+ './vendors/iconfonts/mdi/css/materialdesignicons.min.css' ,
98+ './vendors/css/vendor.bundle.base.css' ,
99+ './vendors/css/vendor.bundle.addons.css' ,
100+ './vendors/js/vendor.bundle.base.js' ,
101+ './vendors/js/vendor.bundle.addons.js'
102+ ] , {
103+ read : false
104+ } ) , {
105+ name : 'plugins' ,
106+ relative : true
107+ } ) )
108+ . pipe ( inject ( gulp . src ( [
109+ './css/*.css' ,
110+ './js/off-canvas.js' ,
111+ './js/misc.js' ,
112+ ] , {
113+ read : false
114+ } ) , {
115+ relative : true
116+ } ) )
117+ . pipe ( gulp . dest ( '.' ) ) ;
95118} ) ;
96119
97120
98121
99122/*replace image path and linking after injection*/
100- gulp . task ( 'replacePath' , function ( ) {
101- gulp . src ( 'pages/*/*.html' , { base : "./" } )
102- . pipe ( replace ( 'src="images/' , 'src="../../images/' ) )
103- . pipe ( replace ( 'href="pages/' , 'href="../../pages/' ) )
104- . pipe ( replace ( 'href="index.html"' , 'href="../../index.html"' ) )
105- . pipe ( gulp . dest ( '.' ) ) ;
106- gulp . src ( 'pages/*.html' , { base : "./" } )
107- . pipe ( replace ( 'src="images/' , 'src="../images/' ) )
108- . pipe ( replace ( '"pages/' , '"../pages/' ) )
109- . pipe ( replace ( 'href="index.html"' , 'href="../index.html"' ) )
110- . pipe ( gulp . dest ( '.' ) ) ;
123+ gulp . task ( 'replacePath' , function ( ) {
124+ gulp . src ( 'pages/*/*.html' , {
125+ base : "./"
126+ } )
127+ . pipe ( replace ( 'src="images/' , 'src="../../images/' ) )
128+ . pipe ( replace ( 'href="pages/' , 'href="../../pages/' ) )
129+ . pipe ( replace ( 'href="index.html"' , 'href="../../index.html"' ) )
130+ . pipe ( gulp . dest ( '.' ) ) ;
131+ gulp . src ( 'pages/*.html' , {
132+ base : "./"
133+ } )
134+ . pipe ( replace ( 'src="images/' , 'src="../images/' ) )
135+ . pipe ( replace ( '"pages/' , '"../pages/' ) )
136+ . pipe ( replace ( 'href="index.html"' , 'href="../index.html"' ) )
137+ . pipe ( gulp . dest ( '.' ) ) ;
111138} ) ;
112139
140+ /*sequence for building vendor scripts and styles*/
141+ gulp . task ( 'bundleVendors' , function ( ) {
142+ runSequence ( 'copyRecursiveVendorFiles' , 'buildBaseVendorStyles' , 'buildBaseVendorScripts' , 'buildOptionalVendorScripts' ) ;
143+ } ) ;
144+
145+ /* Copy whole folder of some specific node modules that are calling other files internally */
146+ gulp . task ( 'copyRecursiveVendorFiles' , function ( ) {
147+ var mdi = gulp . src ( [ './node_modules/mdi/**/*' ] )
148+ . pipe ( gulp . dest ( './vendors/iconfonts/mdi' ) ) ;
149+ var fontawesome = gulp . src ( [ './node_modules/font-awesome/**/*' ] )
150+ . pipe ( gulp . dest ( './vendors/iconfonts/font-awesome' ) ) ;
151+ return merge (
152+ mdi ,
153+ fontawesome
154+ ) ;
155+ } ) ;
113156
157+ /*Building vendor scripts needed for basic template rendering*/
158+ gulp . task ( 'buildBaseVendorScripts' , function ( ) {
159+ return gulp . src ( [
160+ './node_modules/jquery/dist/jquery.min.js' ,
161+ './node_modules/popper.js/dist/umd/popper.min.js' ,
162+ './node_modules/bootstrap/dist/js/bootstrap.min.js'
163+ ] )
164+ . pipe ( concat ( 'vendor.bundle.base.js' ) )
165+ . pipe ( gulp . dest ( './vendors/js' ) ) ;
166+ } ) ;
114167
115- gulp . task ( 'default' , [ 'serve' ] ) ;
168+ /*Building vendor styles needed for basic template rendering*/
169+ gulp . task ( 'buildBaseVendorStyles' , function ( ) {
170+ return gulp . src ( [ './node_modules/perfect-scrollbar/css/perfect-scrollbar.css' ] )
171+ . pipe ( concat ( 'vendor.bundle.base.css' ) )
172+ . pipe ( gulp . dest ( './vendors/css' ) ) ;
173+ } ) ;
174+
175+ /*Building optional vendor scripts for addons*/
176+ gulp . task ( 'buildOptionalVendorScripts' , function ( ) {
177+ return gulp . src ( [
178+ 'node_modules/chart.js/dist/Chart.min.js'
179+ ] )
180+ . pipe ( concat ( 'vendor.bundle.addons.js' ) )
181+ . pipe ( gulp . dest ( './vendors/js' ) ) ;
182+ } ) ;
183+ gulp . task ( 'default' , [ 'serve' ] ) ;
0 commit comments