Refactored watch task using gulp v4 doesn't work












2















I'm refactoring my gulpfile now I'm using gulp v4 and am having an issue with gulp watch not running my stylesCompileIncremental function. Any help or pointers would be much appreciated.



My refactoring includes:




  • Switching to using functions instead of gulp.task

  • Using series and parallel as per the docs

  • Exporting public tasks at the bottom of my gulpfile ie exports.stylesWatch = stylesWatch;

  • Adding callbacks in functions to tell Gulp the function is complete


The code for the affected tasks is as follows (directory paths are stored in package.json file hence pathConfig.ui... values):



// Compile only particular Sass file that has import of changed file
function stylesCompileIncremental(cb) {
sassCompile({
source: getResultedFilesList(changedFilePath),
dest: pathConfig.ui.core.sass.dest,
alsoSearchIn: [pathConfig.ui.lib.resources]
});
cb();
}

// Compile all Sass files and watch for changes
function stylesWatch(cb) {
createImportsGraph();
var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
watcher.on('change', function(event) {
changedFilePath = event;
});
cb();
}

// reload css separated into own function. No callback needed as returning event stream
function reloadCss() {
return gulp.src(generateFilePath)
.pipe($.connect.reload()); // css only reload
}

function devServReloadStyles(cb) {
gulp.series(stylesCompileIncremental, reloadCss);
cb();
}


When I run gulp stylesWatch using my refactored code I get the below output (notice the stylesCompileIncremental task is not run):



Refactored output



So my watch tasking is successfully running but there's something wrong when the devServReloadStyles is run for the stylesCompileIncremental function to not kick in.



The original code before refactoring (when using gulp v3) is below:



// Compile only particular Sass file that has import of changed file
gulp.task('styles:compile:incremental', () => {
return sassCompile({
source: getResultedFilesList(changedFilePath),
dest: pathConfig.ui.core.sass.dest,
alsoSearchIn: [pathConfig.ui.lib.resources]
});
});

// Compile all Sass files and watch for changes
gulp.task('styles:watch', () => {
createImportsGraph();
gulp.watch(
pathConfig.ui.core.sass.src + '**/*.scss',
['devServ:reload:styles']
).on('change', event => changedFilePath = event.path);
});

// Reload the CSS links right after 'styles:compile:incremental' task is returned
gulp.task('devServ:reload:styles', ['styles:compile:incremental'], () => {
return gulp.src(generateFilePath) // css only reload
.pipe($.connect.reload());
});


The original task output when running styles:watch is this:



Original output



And this is the sassCompile variable used inside stylesCompileIncremental which I've currently not changed in anyway.



    /**
* Configurable Sass compilation
* @param {Object} config
*/
const sassCompile = config => {
const sass = require('gulp-sass');
const postcss = require('gulp-postcss');
const autoprefixer = require('autoprefixer');

const postProcessors = [
autoprefixer({
flexbox: 'no-2009'
})
];

return gulp.src(config.source)
.pipe($.sourcemaps.init({
loadMaps: true,
largeFile: true
}))
.pipe(sass({
includePaths: config.alsoSearchIn,
sourceMap: false,
outputStyle: 'compressed',
indentType: 'tab',
indentWidth: '1',
linefeed: 'lf',
precision: 10,
errLogToConsole: true
}))
.on('error', function (error) {
$.util.log('x07');
$.util.log(error.message);
this.emit('end');
})
.pipe(postcss(postProcessors))
.pipe($.sourcemaps.write('.'))
.pipe(gulp.dest(config.dest));
};


UPDATE



This is due to an issue with my devServReloadStyles function, although I'm still unsure why. If I change my stylesWatch function to use the original devServ:reload:styles task stylesCompileIncremental gets run.



// Compile all Sass files and watch for changes
function stylesWatch(cb) {
createImportsGraph();
var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel('devServ:reload:styles'));
watcher.on('change', function(event) {
changedFilePath = event;
});
cb();
}


It would still be good to not use the old task and have this as a function though.
Can anybody tell me why my refactored version doesn't work and have any suggestions as to how this should look?










share|improve this question





























    2















    I'm refactoring my gulpfile now I'm using gulp v4 and am having an issue with gulp watch not running my stylesCompileIncremental function. Any help or pointers would be much appreciated.



    My refactoring includes:




    • Switching to using functions instead of gulp.task

    • Using series and parallel as per the docs

    • Exporting public tasks at the bottom of my gulpfile ie exports.stylesWatch = stylesWatch;

    • Adding callbacks in functions to tell Gulp the function is complete


    The code for the affected tasks is as follows (directory paths are stored in package.json file hence pathConfig.ui... values):



    // Compile only particular Sass file that has import of changed file
    function stylesCompileIncremental(cb) {
    sassCompile({
    source: getResultedFilesList(changedFilePath),
    dest: pathConfig.ui.core.sass.dest,
    alsoSearchIn: [pathConfig.ui.lib.resources]
    });
    cb();
    }

    // Compile all Sass files and watch for changes
    function stylesWatch(cb) {
    createImportsGraph();
    var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
    watcher.on('change', function(event) {
    changedFilePath = event;
    });
    cb();
    }

    // reload css separated into own function. No callback needed as returning event stream
    function reloadCss() {
    return gulp.src(generateFilePath)
    .pipe($.connect.reload()); // css only reload
    }

    function devServReloadStyles(cb) {
    gulp.series(stylesCompileIncremental, reloadCss);
    cb();
    }


    When I run gulp stylesWatch using my refactored code I get the below output (notice the stylesCompileIncremental task is not run):



    Refactored output



    So my watch tasking is successfully running but there's something wrong when the devServReloadStyles is run for the stylesCompileIncremental function to not kick in.



    The original code before refactoring (when using gulp v3) is below:



    // Compile only particular Sass file that has import of changed file
    gulp.task('styles:compile:incremental', () => {
    return sassCompile({
    source: getResultedFilesList(changedFilePath),
    dest: pathConfig.ui.core.sass.dest,
    alsoSearchIn: [pathConfig.ui.lib.resources]
    });
    });

    // Compile all Sass files and watch for changes
    gulp.task('styles:watch', () => {
    createImportsGraph();
    gulp.watch(
    pathConfig.ui.core.sass.src + '**/*.scss',
    ['devServ:reload:styles']
    ).on('change', event => changedFilePath = event.path);
    });

    // Reload the CSS links right after 'styles:compile:incremental' task is returned
    gulp.task('devServ:reload:styles', ['styles:compile:incremental'], () => {
    return gulp.src(generateFilePath) // css only reload
    .pipe($.connect.reload());
    });


    The original task output when running styles:watch is this:



    Original output



    And this is the sassCompile variable used inside stylesCompileIncremental which I've currently not changed in anyway.



        /**
    * Configurable Sass compilation
    * @param {Object} config
    */
    const sassCompile = config => {
    const sass = require('gulp-sass');
    const postcss = require('gulp-postcss');
    const autoprefixer = require('autoprefixer');

    const postProcessors = [
    autoprefixer({
    flexbox: 'no-2009'
    })
    ];

    return gulp.src(config.source)
    .pipe($.sourcemaps.init({
    loadMaps: true,
    largeFile: true
    }))
    .pipe(sass({
    includePaths: config.alsoSearchIn,
    sourceMap: false,
    outputStyle: 'compressed',
    indentType: 'tab',
    indentWidth: '1',
    linefeed: 'lf',
    precision: 10,
    errLogToConsole: true
    }))
    .on('error', function (error) {
    $.util.log('x07');
    $.util.log(error.message);
    this.emit('end');
    })
    .pipe(postcss(postProcessors))
    .pipe($.sourcemaps.write('.'))
    .pipe(gulp.dest(config.dest));
    };


    UPDATE



    This is due to an issue with my devServReloadStyles function, although I'm still unsure why. If I change my stylesWatch function to use the original devServ:reload:styles task stylesCompileIncremental gets run.



    // Compile all Sass files and watch for changes
    function stylesWatch(cb) {
    createImportsGraph();
    var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel('devServ:reload:styles'));
    watcher.on('change', function(event) {
    changedFilePath = event;
    });
    cb();
    }


    It would still be good to not use the old task and have this as a function though.
    Can anybody tell me why my refactored version doesn't work and have any suggestions as to how this should look?










    share|improve this question



























      2












      2








      2








      I'm refactoring my gulpfile now I'm using gulp v4 and am having an issue with gulp watch not running my stylesCompileIncremental function. Any help or pointers would be much appreciated.



      My refactoring includes:




      • Switching to using functions instead of gulp.task

      • Using series and parallel as per the docs

      • Exporting public tasks at the bottom of my gulpfile ie exports.stylesWatch = stylesWatch;

      • Adding callbacks in functions to tell Gulp the function is complete


      The code for the affected tasks is as follows (directory paths are stored in package.json file hence pathConfig.ui... values):



      // Compile only particular Sass file that has import of changed file
      function stylesCompileIncremental(cb) {
      sassCompile({
      source: getResultedFilesList(changedFilePath),
      dest: pathConfig.ui.core.sass.dest,
      alsoSearchIn: [pathConfig.ui.lib.resources]
      });
      cb();
      }

      // Compile all Sass files and watch for changes
      function stylesWatch(cb) {
      createImportsGraph();
      var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
      watcher.on('change', function(event) {
      changedFilePath = event;
      });
      cb();
      }

      // reload css separated into own function. No callback needed as returning event stream
      function reloadCss() {
      return gulp.src(generateFilePath)
      .pipe($.connect.reload()); // css only reload
      }

      function devServReloadStyles(cb) {
      gulp.series(stylesCompileIncremental, reloadCss);
      cb();
      }


      When I run gulp stylesWatch using my refactored code I get the below output (notice the stylesCompileIncremental task is not run):



      Refactored output



      So my watch tasking is successfully running but there's something wrong when the devServReloadStyles is run for the stylesCompileIncremental function to not kick in.



      The original code before refactoring (when using gulp v3) is below:



      // Compile only particular Sass file that has import of changed file
      gulp.task('styles:compile:incremental', () => {
      return sassCompile({
      source: getResultedFilesList(changedFilePath),
      dest: pathConfig.ui.core.sass.dest,
      alsoSearchIn: [pathConfig.ui.lib.resources]
      });
      });

      // Compile all Sass files and watch for changes
      gulp.task('styles:watch', () => {
      createImportsGraph();
      gulp.watch(
      pathConfig.ui.core.sass.src + '**/*.scss',
      ['devServ:reload:styles']
      ).on('change', event => changedFilePath = event.path);
      });

      // Reload the CSS links right after 'styles:compile:incremental' task is returned
      gulp.task('devServ:reload:styles', ['styles:compile:incremental'], () => {
      return gulp.src(generateFilePath) // css only reload
      .pipe($.connect.reload());
      });


      The original task output when running styles:watch is this:



      Original output



      And this is the sassCompile variable used inside stylesCompileIncremental which I've currently not changed in anyway.



          /**
      * Configurable Sass compilation
      * @param {Object} config
      */
      const sassCompile = config => {
      const sass = require('gulp-sass');
      const postcss = require('gulp-postcss');
      const autoprefixer = require('autoprefixer');

      const postProcessors = [
      autoprefixer({
      flexbox: 'no-2009'
      })
      ];

      return gulp.src(config.source)
      .pipe($.sourcemaps.init({
      loadMaps: true,
      largeFile: true
      }))
      .pipe(sass({
      includePaths: config.alsoSearchIn,
      sourceMap: false,
      outputStyle: 'compressed',
      indentType: 'tab',
      indentWidth: '1',
      linefeed: 'lf',
      precision: 10,
      errLogToConsole: true
      }))
      .on('error', function (error) {
      $.util.log('x07');
      $.util.log(error.message);
      this.emit('end');
      })
      .pipe(postcss(postProcessors))
      .pipe($.sourcemaps.write('.'))
      .pipe(gulp.dest(config.dest));
      };


      UPDATE



      This is due to an issue with my devServReloadStyles function, although I'm still unsure why. If I change my stylesWatch function to use the original devServ:reload:styles task stylesCompileIncremental gets run.



      // Compile all Sass files and watch for changes
      function stylesWatch(cb) {
      createImportsGraph();
      var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel('devServ:reload:styles'));
      watcher.on('change', function(event) {
      changedFilePath = event;
      });
      cb();
      }


      It would still be good to not use the old task and have this as a function though.
      Can anybody tell me why my refactored version doesn't work and have any suggestions as to how this should look?










      share|improve this question
















      I'm refactoring my gulpfile now I'm using gulp v4 and am having an issue with gulp watch not running my stylesCompileIncremental function. Any help or pointers would be much appreciated.



      My refactoring includes:




      • Switching to using functions instead of gulp.task

      • Using series and parallel as per the docs

      • Exporting public tasks at the bottom of my gulpfile ie exports.stylesWatch = stylesWatch;

      • Adding callbacks in functions to tell Gulp the function is complete


      The code for the affected tasks is as follows (directory paths are stored in package.json file hence pathConfig.ui... values):



      // Compile only particular Sass file that has import of changed file
      function stylesCompileIncremental(cb) {
      sassCompile({
      source: getResultedFilesList(changedFilePath),
      dest: pathConfig.ui.core.sass.dest,
      alsoSearchIn: [pathConfig.ui.lib.resources]
      });
      cb();
      }

      // Compile all Sass files and watch for changes
      function stylesWatch(cb) {
      createImportsGraph();
      var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
      watcher.on('change', function(event) {
      changedFilePath = event;
      });
      cb();
      }

      // reload css separated into own function. No callback needed as returning event stream
      function reloadCss() {
      return gulp.src(generateFilePath)
      .pipe($.connect.reload()); // css only reload
      }

      function devServReloadStyles(cb) {
      gulp.series(stylesCompileIncremental, reloadCss);
      cb();
      }


      When I run gulp stylesWatch using my refactored code I get the below output (notice the stylesCompileIncremental task is not run):



      Refactored output



      So my watch tasking is successfully running but there's something wrong when the devServReloadStyles is run for the stylesCompileIncremental function to not kick in.



      The original code before refactoring (when using gulp v3) is below:



      // Compile only particular Sass file that has import of changed file
      gulp.task('styles:compile:incremental', () => {
      return sassCompile({
      source: getResultedFilesList(changedFilePath),
      dest: pathConfig.ui.core.sass.dest,
      alsoSearchIn: [pathConfig.ui.lib.resources]
      });
      });

      // Compile all Sass files and watch for changes
      gulp.task('styles:watch', () => {
      createImportsGraph();
      gulp.watch(
      pathConfig.ui.core.sass.src + '**/*.scss',
      ['devServ:reload:styles']
      ).on('change', event => changedFilePath = event.path);
      });

      // Reload the CSS links right after 'styles:compile:incremental' task is returned
      gulp.task('devServ:reload:styles', ['styles:compile:incremental'], () => {
      return gulp.src(generateFilePath) // css only reload
      .pipe($.connect.reload());
      });


      The original task output when running styles:watch is this:



      Original output



      And this is the sassCompile variable used inside stylesCompileIncremental which I've currently not changed in anyway.



          /**
      * Configurable Sass compilation
      * @param {Object} config
      */
      const sassCompile = config => {
      const sass = require('gulp-sass');
      const postcss = require('gulp-postcss');
      const autoprefixer = require('autoprefixer');

      const postProcessors = [
      autoprefixer({
      flexbox: 'no-2009'
      })
      ];

      return gulp.src(config.source)
      .pipe($.sourcemaps.init({
      loadMaps: true,
      largeFile: true
      }))
      .pipe(sass({
      includePaths: config.alsoSearchIn,
      sourceMap: false,
      outputStyle: 'compressed',
      indentType: 'tab',
      indentWidth: '1',
      linefeed: 'lf',
      precision: 10,
      errLogToConsole: true
      }))
      .on('error', function (error) {
      $.util.log('x07');
      $.util.log(error.message);
      this.emit('end');
      })
      .pipe(postcss(postProcessors))
      .pipe($.sourcemaps.write('.'))
      .pipe(gulp.dest(config.dest));
      };


      UPDATE



      This is due to an issue with my devServReloadStyles function, although I'm still unsure why. If I change my stylesWatch function to use the original devServ:reload:styles task stylesCompileIncremental gets run.



      // Compile all Sass files and watch for changes
      function stylesWatch(cb) {
      createImportsGraph();
      var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel('devServ:reload:styles'));
      watcher.on('change', function(event) {
      changedFilePath = event;
      });
      cb();
      }


      It would still be good to not use the old task and have this as a function though.
      Can anybody tell me why my refactored version doesn't work and have any suggestions as to how this should look?







      javascript node.js gulp gulp-watch






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jan 2 at 16:29







      Damodog

















      asked Jan 2 at 10:17









      DamodogDamodog

      117212




      117212
























          1 Answer
          1






          active

          oldest

          votes


















          0














          I've fixed this now.
          gulp.series and gulp.parallel return functions so there was no need to wrap stylesCompileIncremental and reloadCss inside another function ie. devServReloadStyles.
          As per Blaine's comment here.



          So my function:



          function devServReloadStyles(cb) {
          gulp.series(stylesCompileIncremental, reloadCss);
          cb();


          }



          Can just be assigned to a variable:



          const devServReloadStyles = gulp.series(stylesCompileIncremental, reloadCss);


          And my stylesWatch task is already calling devServReloadStyles:



          // Compile all Sass files and watch for changes
          function stylesWatch(cb) {
          createImportsGraph();
          var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
          watcher.on('change', function(event) {
          changedFilePath = event;
          });
          cb();
          }


          So running gulp stylesWatch now runs the stylesCompileIncremental job (notice how devServReloadStyles doesn't show as it's not a function).



          enter image description here






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54004526%2frefactored-watch-task-using-gulp-v4-doesnt-work%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I've fixed this now.
            gulp.series and gulp.parallel return functions so there was no need to wrap stylesCompileIncremental and reloadCss inside another function ie. devServReloadStyles.
            As per Blaine's comment here.



            So my function:



            function devServReloadStyles(cb) {
            gulp.series(stylesCompileIncremental, reloadCss);
            cb();


            }



            Can just be assigned to a variable:



            const devServReloadStyles = gulp.series(stylesCompileIncremental, reloadCss);


            And my stylesWatch task is already calling devServReloadStyles:



            // Compile all Sass files and watch for changes
            function stylesWatch(cb) {
            createImportsGraph();
            var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
            watcher.on('change', function(event) {
            changedFilePath = event;
            });
            cb();
            }


            So running gulp stylesWatch now runs the stylesCompileIncremental job (notice how devServReloadStyles doesn't show as it's not a function).



            enter image description here






            share|improve this answer




























              0














              I've fixed this now.
              gulp.series and gulp.parallel return functions so there was no need to wrap stylesCompileIncremental and reloadCss inside another function ie. devServReloadStyles.
              As per Blaine's comment here.



              So my function:



              function devServReloadStyles(cb) {
              gulp.series(stylesCompileIncremental, reloadCss);
              cb();


              }



              Can just be assigned to a variable:



              const devServReloadStyles = gulp.series(stylesCompileIncremental, reloadCss);


              And my stylesWatch task is already calling devServReloadStyles:



              // Compile all Sass files and watch for changes
              function stylesWatch(cb) {
              createImportsGraph();
              var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
              watcher.on('change', function(event) {
              changedFilePath = event;
              });
              cb();
              }


              So running gulp stylesWatch now runs the stylesCompileIncremental job (notice how devServReloadStyles doesn't show as it's not a function).



              enter image description here






              share|improve this answer


























                0












                0








                0







                I've fixed this now.
                gulp.series and gulp.parallel return functions so there was no need to wrap stylesCompileIncremental and reloadCss inside another function ie. devServReloadStyles.
                As per Blaine's comment here.



                So my function:



                function devServReloadStyles(cb) {
                gulp.series(stylesCompileIncremental, reloadCss);
                cb();


                }



                Can just be assigned to a variable:



                const devServReloadStyles = gulp.series(stylesCompileIncremental, reloadCss);


                And my stylesWatch task is already calling devServReloadStyles:



                // Compile all Sass files and watch for changes
                function stylesWatch(cb) {
                createImportsGraph();
                var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
                watcher.on('change', function(event) {
                changedFilePath = event;
                });
                cb();
                }


                So running gulp stylesWatch now runs the stylesCompileIncremental job (notice how devServReloadStyles doesn't show as it's not a function).



                enter image description here






                share|improve this answer













                I've fixed this now.
                gulp.series and gulp.parallel return functions so there was no need to wrap stylesCompileIncremental and reloadCss inside another function ie. devServReloadStyles.
                As per Blaine's comment here.



                So my function:



                function devServReloadStyles(cb) {
                gulp.series(stylesCompileIncremental, reloadCss);
                cb();


                }



                Can just be assigned to a variable:



                const devServReloadStyles = gulp.series(stylesCompileIncremental, reloadCss);


                And my stylesWatch task is already calling devServReloadStyles:



                // Compile all Sass files and watch for changes
                function stylesWatch(cb) {
                createImportsGraph();
                var watcher = gulp.watch(pathConfig.ui.core.sass.src + '**/*.scss', gulp.parallel(devServReloadStyles));
                watcher.on('change', function(event) {
                changedFilePath = event;
                });
                cb();
                }


                So running gulp stylesWatch now runs the stylesCompileIncremental job (notice how devServReloadStyles doesn't show as it's not a function).



                enter image description here







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jan 3 at 9:15









                DamodogDamodog

                117212




                117212
































                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54004526%2frefactored-watch-task-using-gulp-v4-doesnt-work%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

                    ts Property 'filter' does not exist on type '{}'

                    mat-slide-toggle shouldn't change it's state when I click cancel in confirmation window