gulp livereload - 多个过滤器

gulp livereload - Multiple filters

我正在结合使用 gulp 网络服务器和 nodejs 来测试我的 api。 它们都在同一个目录中,所以只要我的模拟数据发生变化,gulp 就会执行 livereload。 我想向 livereload 添加过滤器。 添加我的第一个过滤器工作得很好,但是有两个它永远不会重新加载。

gulp.task('webserver',['watch:js', 'watch:sass', 'watch:html'], function() {
  gulp.src('./')
    .pipe(server({
      defaultFile: "dist/app.component.html",
      livereload:  {
        enable: true,
        filter: function(fileName){
         if (!(fileName.match(/.git/) | fileName.match(/.nodejs_srv/))) {

                        return true;

                    } else {

                        return false;

                    }
      }},
      open: true
    }));
});

已编辑过滤函数:

function(filePath, cb) {
          cb( !(/.git/.test(filePath)) );
      }}

我不知道怎么给这个添加过滤器,新手过来。

您放弃了回调 cb。我不太了解livereload。但是如果依赖回调,就必须调用这个回调。

gulp.task('webserver',['watch:js', 'watch:sass', 'watch:html'], function()
{
  gulp.src('./')
    .pipe(server({
      defaultFile: "dist/app.component.html",
      livereload:  {
        enable: true,
        filter: function(fileName, cb)
        {
           cb(!(fileName.match(/.git/) || fileName.match(/.nodejs_srv/)));
        }
      },
      open: true
    }));
});

我只是输入示例,没有语法检查。希望它开箱即用。

回调获取一个布尔值作为参数,指示是否应使用文件 truefalse

好的,我自己找到了解决方案。 这是

function(filePath, cb) {
          cb( !(/.git/.test(filePath)) &&
              !(/nodejs_srv/.test(filePath));
      }}