Filter GLUP livereload-多个过滤器

Filter GLUP livereload-多个过滤器,filter,gulp,livereload,Filter,Gulp,Livereload,我正在使用gulp Web服务器和nodejs来测试我的api。 它们都在同一个目录中,所以只要我的模拟数据发生变化,gulp就会执行livereload。 我想在livereload中添加过滤器。 添加我的第一个过滤器效果很好,但有两个过滤器就永远不会重新加载 gulp.task('webserver',['watch:js', 'watch:sass', 'watch:html'], function() { gulp.src('./') .pipe(server({

我正在使用gulp Web服务器和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)) );
      }}

我不知道如何在这里添加fitlers,newbe。

您放弃了回调
cb
。我对利弗雷罗德不太了解。但如果它依赖于回调,则必须调用此回调

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
    }));
});
我只是输入了我的示例,没有语法检查。希望它能开箱即用


回调函数获取一个布尔值作为一个参数,该参数指示文件是否应该执行
true
false

您放弃了回调函数
cb
。我对利弗雷罗德不太了解。但如果它依赖于回调,则必须调用此回调

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
    }));
});
我只是输入了我的示例,没有语法检查。希望它能开箱即用


回调函数获取一个布尔值作为参数,该参数指示该文件应采用
true
还是不采用
false
好的,我自己找到了解决方案。 它是


好吧,我自己找到了解决办法。 它是


您没有在筛选器之间使用逻辑或
|
。尝试
fileName.match(/.git/)| | fileName…
Whups。但它也不起作用。不知何故,它现在甚至不能用一条路径工作。我将使用我以前使用的单路径过滤器功能编辑此文章。您在过滤器之间没有使用逻辑或
|
。尝试
fileName.match(/.git/)| | fileName…
Whups。但它也不起作用。不知何故,它现在甚至不能用一条路径工作。我将用我以前的一个路径过滤功能编辑这篇文章。我找到了一个解决方案,我想亲自去facepalm。我不得不用&&而不是| |,一切都很好。如果你使用一个没有解释的函数,就会发生这种情况。无论如何,谢谢你!对不起,我认为你弄错了。如果您使用and
&
,那么您可以测试该文件是否与“.git”和“.nodejs_srv”相同,这一直都是正确的。因为我仍然不知道它是如何工作的以及它是做什么的,因为我在任何地方都找不到对此的任何正确解释,所以我唯一能说的是,它是工作的。如果你说不应该。。好。那我真的很困惑(filter函数的调用方可能会检查您是否返回值。在这种情况下,返回值必须是real
true
false
而不是falsy或truely。(在JavaScript中,可以将某些值解释为false(未定义,“,0,null)或true(所有其他值)。)如果您不返回任何内容或
未定义
调用方需要一个回调函数。因此,它可能在没有回调的情况下工作。但是如果您像您那样使用
&&
,结果将始终是
true
,因为文件名不能同时包含两个值。您的筛选器没有排除任何内容。我只是无法帮助,并检查了服务器生命重新加载的代码。-)我看到的版本无论如何都需要回调。它没有检查返回值,正如我在上次评论中所怀疑的那样。所以你必须使用回调。我找到了一个解决方案,我想亲自使用facepalm。我不得不用&&而不是| |,一切都很好。如果你使用一个没有解释的函数,就会发生这种情况。无论如何,谢谢你!对不起,我认为你弄错了。如果您使用and
&
,那么您可以测试该文件是否与“.git”和“.nodejs_srv”相同,这一直都是正确的。因为我仍然不知道它是如何工作的以及它是做什么的,因为我在任何地方都找不到对此的任何正确解释,所以我唯一能说的是,它是工作的。如果你说不应该。。好。那我真的很困惑(filter函数的调用方可能会检查您是否返回值。在这种情况下,返回值必须是real
true
false
而不是falsy或truely。(在JavaScript中,可以将某些值解释为false(未定义,“,0,null)或true(所有其他值)。)如果您不返回任何内容或
未定义
调用方需要一个回调函数。因此,它可能在没有回调的情况下工作。但是如果您像您那样使用
&&
,结果将始终是
true
,因为文件名不能同时包含两个值。您的筛选器没有排除任何内容。我只是无法帮助,并检查了服务器生命重新加载的代码。-)我看到的版本无论如何都需要回调。它没有检查返回值,正如我在上次评论中所怀疑的那样。因此,您必须使用回调。好的,这将起作用,但这与cb(!(/.git/.test(filePath)| |/nodejs_srv/.test(filePath))相同它只是一个布尔变量<代码>!a&&!b==!(a | | b)。请将您的答案标记为已接受的答案。啊,我的第一次尝试是!(a) | |!(b) ,所以那可能是我的错误。不过,我得等两天才能接受。是的,你说得对,我放弃了(两天)。很抱歉是的,你的第一次尝试是错误的。但我想你从中学到了很多。这是最好的学习方法:犯错误并找出发生了什么。好的,这会起作用,但与
cb(!(/.git/.test(filePath)| |/nodejs_srv/.test(filePath))相同它只是一个布尔变量<代码>!a&&!b==!(a | | b)
。请将您的答案标记为已接受的答案。啊,我的第一次尝试是!(a) | |!(b) ,所以那可能是我的错误。不过,我得等两天才能接受。是的,你说得对,我放弃了(两天)。很抱歉是的,你的第一次尝试是错误的。但我想你从中学到了很多。这是最好的学习:犯错误并找出发生了什么。