2016-06-29 2 views
0

Я использую веб-сервер gulp в сочетании с nodejs для проверки моего api. Они находятся в одной директории, поэтому, как только мои измененные данные меняются, глоток выполняет функцию загрузки в печень. Я хотел добавить фильтры в корзину. Добавление моего первого фильтра работало отлично, но с двумя он не перезагружается.gulp 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 
    })); 
}); 

Edited функция фильтра:

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

Я не знаю, как добавить fitlers к этому, newbe здесь.

+0

Вы не использовали логику или '||' между фильтрами. Попробуйте 'fileName.match (/. Git /) || fileName ... ' –

+0

Whups. Но он тоже не работает. Так или иначе, теперь он даже не работает с одним путем. Я отредактирую этот пост с помощью функции фильтра с одним контуром, которую я имел раньше. – Faigjaz

ответ

1

Хорошо, я нашел решение самостоятельно. Это

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

Хорошо, это сработает, но это то же самое, что 'cb (! (/.git/.test(filePath) || /nodejs_srv/.test(filePath)));' Это просто логическая вариация. '! a &&! b ==! (a || b)'. Пожалуйста, отметьте свой ответ в качестве принятого ответа. –

+0

Aaah, моя первая попытка была! (A) || !(б), так что это могла быть моя ошибка. Придется ждать два дня, чтобы согласиться. – Faigjaz

+0

Да, ты прав, я прощал (два дня). Сожалею. И да, ваша первая попытка была неправильной. Но я думаю, вы многому научились. Это лучшее обучение: совершение ошибок и выяснение того, что произошло во время войны. –

1

Вы выбрали обратный вызов 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.

+0

Я нашел решение, и я хотел бы встретиться лицом к лицу. Мне пришлось использовать && вместо || и все работает нормально. Ну, это произойдет, если вы используете функцию, не содержащую никаких объяснений. В любом случае, спасибо вам! – Faigjaz

+0

Извините, я думаю, вы допустили ошибку. Если вы используете a и '&&', тогда вы проверяете, чтобы файл не был похож на «.git» И как «.nodejs_srv» одновременно, что всегда справедливо. –

+0

Поскольку я до сих пор не знаю, КАК это работает и что он делает, поскольку я не могу найти никакого объяснения этому нигде, единственное, что я могу сказать, это то, что он работает. Если вы скажете, что это не ... хорошо. Тогда я действительно смущен. :( – Faigjaz

Смежные вопросы