@@ -25,12 +25,11 @@ sass.compiler = require('sass');
2525function compileStyles ( ) {
2626 return gulp
2727 . src ( [ 'app/assets/sass/**/*.scss' , 'docs/assets/sass/**/*.scss' ] )
28- . pipe ( sass ( ) )
29- . pipe ( gulp . dest ( 'public/css' ) )
30- . on ( 'error' , ( err ) => {
31- console . log ( err ) ;
32- process . exit ( 1 ) ;
33- } ) ;
28+ . pipe ( sass ( {
29+ outputStyle : 'expanded' ,
30+ sourceComments : true
31+ } ) . on ( 'error' , sass . logError ) )
32+ . pipe ( gulp . dest ( 'public/css' ) ) ;
3433}
3534
3635// Compile JavaScript (with ES6 support)
@@ -47,31 +46,31 @@ function compileAssets() {
4746 . src ( [
4847 'app/assets/**/**/*.*' ,
4948 'docs/assets/**/**/*.*' ,
50- '!**/assets/**/**/*.js' , // Don't copy JS files
51- '!**/assets/**/**/*.scss' , // Don't copy SCSS files
49+ '!**/assets/**/**/*.js' ,
50+ '!**/assets/**/**/*.scss' ,
5251 ] , { encoding : false } )
5352 . pipe ( gulp . dest ( 'public' ) ) ;
5453}
5554
56- // Start nodemon with enhanced watching
55+ // Start nodemon
5756function startNodemon ( done ) {
5857 const server = nodemon ( {
5958 script : 'app.js' ,
6059 stdout : true ,
61- ext : 'js json' , // Added json to watch for package.json changes
60+ ext : 'js json' ,
6261 watch : [
63- 'app/**/*.js' , // Watch all JS files in app directory
64- 'app.js' , // Watch main app file
65- 'routes/**/*.js' , // Watch route files
66- 'lib/**/*.js' , // Watch library files
67- 'config/**/*.js' // Watch configuration files
62+ 'app/**/*.js' ,
63+ 'app.js' ,
64+ 'routes/**/*.js' ,
65+ 'lib/**/*.js' ,
66+ 'config/**/*.js'
6867 ] ,
6968 ignore : [
70- 'app/assets/**' , // Ignore asset files
71- 'public/**' , // Ignore compiled files
72- 'node_modules/**' // Ignore node_modules
69+ 'app/assets/**' ,
70+ 'public/**' ,
71+ 'node_modules/**'
7372 ] ,
74- delay : 1000 , // Add a small delay to prevent rapid restarts
73+ delay : 1000 ,
7574 quiet : false ,
7675 } ) ;
7776
@@ -94,7 +93,6 @@ function startNodemon(done) {
9493 }
9594 } ) ;
9695
97- // Add restart event handler
9896 server . on ( 'restart' , ( ) => {
9997 console . log ( 'Restarting server due to changes...' ) ;
10098 } ) ;
@@ -104,31 +102,26 @@ function reload() {
104102 browserSync . reload ( ) ;
105103}
106104
107- // Start browsersync with enhanced configuration
105+ // Start browsersync
108106function startBrowserSync ( done ) {
109- browserSync . init (
110- {
111- proxy : 'localhost:' + port ,
112- port : port + 1000 ,
113- ui : false ,
114- files : [
115- 'app/views/**/*.*' ,
116- 'docs/views/**/*.*' ,
117- 'public/**/*.*'
118- ] ,
119- ghostMode : false ,
120- open : false ,
121- notify : true ,
122- watch : true ,
123- reloadDelay : 1000 , // Add delay before reload
124- reloadDebounce : 1000 // Debounce reloads
125- } ,
126- done
127- ) ;
128- gulp . watch ( 'public/**/*.*' ) . on ( 'change' , reload ) ;
107+ browserSync . init ( {
108+ proxy : 'localhost:' + port ,
109+ port : port + 1000 ,
110+ ui : false ,
111+ files : [
112+ 'public/css/**/*.css' ,
113+ 'public/js/**/*.js' ,
114+ 'app/views/**/*'
115+ ] ,
116+ ghostMode : false ,
117+ open : false ,
118+ notify : false ,
119+ logFileChanges : false ,
120+ reloadDebounce : 1000
121+ } , done ) ;
129122}
130123
131- // Enhanced watch function
124+ // Watch files
132125function watch ( ) {
133126 gulp . watch ( 'app/assets/sass/**/*.scss' , gulp . series ( compileStyles , reload ) ) ;
134127 gulp . watch ( 'app/assets/javascript/**/*.js' , gulp . series ( compileScripts , reload ) ) ;
@@ -143,8 +136,8 @@ exports.compileStyles = compileStyles;
143136exports . compileScripts = compileScripts ;
144137exports . cleanPublic = cleanPublic ;
145138
146- gulp . task (
147- 'build' ,
139+ gulp . task ( 'build' ,
148140 gulp . series ( cleanPublic , compileStyles , compileScripts , compileAssets )
149141) ;
142+
150143gulp . task ( 'default' , gulp . series ( startNodemon , startBrowserSync , watch ) ) ;
0 commit comments