11var gulp = require ( 'gulp' ) ;
22var sass = require ( 'gulp-sass' ) ;
3- var browserSync = require ( 'browser-sync' ) . create ( ) ;
43var header = require ( 'gulp-header' ) ;
54var cleanCSS = require ( 'gulp-clean-css' ) ;
65var rename = require ( "gulp-rename" ) ;
76var pkg = require ( './package.json' ) ;
7+ var browserSync = require ( 'browser-sync' ) . create ( ) ;
88
99// Set the banner content
1010var banner = [ '/*!\n' ,
@@ -15,88 +15,93 @@ var banner = ['/*!\n',
1515 ''
1616] . join ( '' ) ;
1717
18- // Compiles SCSS files from /scss into /css
19- gulp . task ( 'sass' , function ( ) {
20- return gulp . src ( 'scss/landing-page.scss' )
21- . pipe ( sass ( ) )
22- . pipe ( header ( banner , {
23- pkg : pkg
24- } ) )
25- . pipe ( gulp . dest ( 'css' ) )
26- . pipe ( browserSync . reload ( {
27- stream : true
28- } ) )
29- } ) ;
30-
31- // Minify compiled CSS
32- gulp . task ( 'minify-css' , [ 'sass' ] , function ( ) {
33- return gulp . src ( 'css/landing-page.css' )
34- . pipe ( cleanCSS ( {
35- compatibility : 'ie8'
36- } ) )
37- . pipe ( rename ( {
38- suffix : '.min'
39- } ) )
40- . pipe ( gulp . dest ( 'css' ) )
41- . pipe ( browserSync . reload ( {
42- stream : true
43- } ) )
44- } ) ;
18+ // Copy third party libraries from /node_modules into /vendor
19+ gulp . task ( 'vendor' , function ( ) {
4520
46- // Copy vendor files from /node_modules into /vendor
47- // NOTE: requires `npm install` before running!
48- gulp . task ( 'copy' , function ( ) {
21+ // Bootstrap
4922 gulp . src ( [
50- 'node_modules/bootstrap/dist/**/*' ,
51- '!**/npm.js' ,
52- '!**/bootstrap-theme.*' ,
53- '!**/*.map'
23+ './node_modules/bootstrap/dist/**/*' ,
24+ '!./node_modules/bootstrap/dist/css/bootstrap-grid*' ,
25+ '!./node_modules/bootstrap/dist/css/bootstrap-reboot*'
5426 ] )
55- . pipe ( gulp . dest ( 'vendor/bootstrap' ) )
27+ . pipe ( gulp . dest ( './ vendor/bootstrap' ) )
5628
57- gulp . src ( [ 'node_modules/jquery/dist/jquery.js' , 'node_modules/jquery/dist/jquery.min.js' ] )
58- . pipe ( gulp . dest ( 'vendor/jquery' ) )
29+ // Font Awesome
30+ gulp . src ( [
31+ './node_modules/font-awesome/**/*' ,
32+ '!./node_modules/font-awesome/{less,less/*}' ,
33+ '!./node_modules/font-awesome/{scss,scss/*}' ,
34+ '!./node_modules/font-awesome/.*' ,
35+ '!./node_modules/font-awesome/*.{txt,json,md}'
36+ ] )
37+ . pipe ( gulp . dest ( './vendor/font-awesome' ) )
5938
60- gulp . src ( [ 'node_modules/jquery.easing/*.js' ] )
61- . pipe ( gulp . dest ( 'vendor/jquery-easing' ) )
39+ // jQuery
40+ gulp . src ( [
41+ './node_modules/jquery/dist/*' ,
42+ '!./node_modules/jquery/dist/core.js'
43+ ] )
44+ . pipe ( gulp . dest ( './vendor/jquery' ) )
6245
46+ // jQuery Easing
6347 gulp . src ( [
64- 'node_modules/font-awesome/**' ,
65- '!node_modules/font-awesome/**/*.map' ,
66- '!node_modules/font-awesome/.npmignore' ,
67- '!node_modules/font-awesome/*.txt' ,
68- '!node_modules/font-awesome/*.md' ,
69- '!node_modules/font-awesome/*.json'
48+ './node_modules/jquery.easing/*.js'
7049 ] )
71- . pipe ( gulp . dest ( 'vendor/font-awesome ' ) )
50+ . pipe ( gulp . dest ( './ vendor/jquery-easing ' ) )
7251
52+ // Simple Line Icons
7353 gulp . src ( [
74- 'node_modules/simple-line-icons/fonts/**' ,
54+ './ node_modules/simple-line-icons/fonts/**' ,
7555 ] )
76- . pipe ( gulp . dest ( 'vendor/simple-line-icons/fonts' ) )
56+ . pipe ( gulp . dest ( './ vendor/simple-line-icons/fonts' ) )
7757
7858 gulp . src ( [
79- 'node_modules/simple-line-icons/css/**' ,
59+ './node_modules/simple-line-icons/css/**' ,
60+ ] )
61+ . pipe ( gulp . dest ( './vendor/simple-line-icons/css' ) )
62+
63+ } ) ;
64+
65+ // Compile SCSS
66+ gulp . task ( 'css:compile' , function ( ) {
67+ return gulp . src ( './scss/**/*.scss' )
68+ . pipe ( sass . sync ( {
69+ outputStyle : 'expanded'
70+ } ) . on ( 'error' , sass . logError ) )
71+ . pipe ( gulp . dest ( './css' ) )
72+ } ) ;
73+
74+ // Minify CSS
75+ gulp . task ( 'css:minify' , [ 'css:compile' ] , function ( ) {
76+ return gulp . src ( [
77+ './css/*.css' ,
78+ '!./css/*.min.css'
8079 ] )
81- . pipe ( gulp . dest ( 'vendor/simple-line-icons/css' ) )
82- } )
80+ . pipe ( cleanCSS ( ) )
81+ . pipe ( rename ( {
82+ suffix : '.min'
83+ } ) )
84+ . pipe ( gulp . dest ( './css' ) )
85+ . pipe ( browserSync . stream ( ) ) ;
86+ } ) ;
87+
88+ // CSS
89+ gulp . task ( 'css' , [ 'css:compile' , 'css:minify' ] ) ;
8390
8491// Default task
85- gulp . task ( 'default' , [ 'sass' , 'minify- css', 'copy ' ] ) ;
92+ gulp . task ( 'default' , [ 'css' , 'vendor ' ] ) ;
8693
8794// Configure the browserSync task
8895gulp . task ( 'browserSync' , function ( ) {
8996 browserSync . init ( {
9097 server : {
91- baseDir : ''
92- } ,
93- } )
94- } )
98+ baseDir : "./"
99+ }
100+ } ) ;
101+ } ) ;
95102
96- // Dev task with browserSync
97- gulp . task ( 'dev' , [ 'browserSync' , 'sass' , 'minify-css' ] , function ( ) {
98- gulp . watch ( 'scss/*.scss' , [ 'sass' ] ) ;
99- gulp . watch ( 'css/*.css' , [ 'minify-css' ] ) ;
100- // Reloads the browser whenever HTML files change
101- gulp . watch ( '*.html' , browserSync . reload ) ;
103+ // Dev task
104+ gulp . task ( 'dev' , [ 'css' , 'browserSync' ] , function ( ) {
105+ gulp . watch ( './scss/*.scss' , [ 'css' ] ) ;
106+ gulp . watch ( './*.html' , browserSync . reload ) ;
102107} ) ;
0 commit comments