单个gulp-if调用中有多个流?

时间:2018-08-15 00:41:24

标签: javascript node.js gulp gulp-if

在以下代码中,我plugins.if( !config.isDevelopmentMode && config.compileBladeTemplates, /* task */)进行了两次检查( plugins.if gulp-if 软件包)。我可以用一张支票重构下面的代码吗?不确定是否只能使用 gulp-if ,因此允许使用其他插件。

const   gulp = require('gulp'),
        plugins = require('gulp-load-plugins')();

// ...
.pipe(plugins.if(
  !config.isDevelopmentMode && config.compileBladeTemplates,
  plugins.replace(
     /<!--\s+@blade\s+namedRoute\(\s*(.+?)\s*\)\s*-->\s*(?:\r\n|\r|\n)?\s*(<.+href=")(?:.+?)(".*\/?>)/g,
     `$2{{ route('$1') }}$3`
  )
))
.pipe(plugins.if(
  !config.isDevelopmentMode && config.compileBladeTemplates,
  plugins.replace(
     /<!--\s+@blade\s+(yield|include)\s*-->/g,
     ` @$1('$2')`
  )
))
// ...

1 个答案:

答案 0 :(得分:1)

如果我了解您要做什么,那么我认为懒惰将为您工作。参见gulp-if with lazypipe

var replaceChannel = lazypipe()
      plugins.replace(
     /<!--\s+@blade\s+namedRoute\(\s*(.+?)\s*\)\s*-->\s*(?:\r\n|\r|\n)?\s*(<.+href=")(?:.+?)(".*\/?>)/g,
     `$2{{ route('$1') }}$3`
    )
    plugins.replace(
     /<!--\s+@blade\s+(yield|include)\s*-->/g,
     ` @$1('$2')`
   );

然后在您的任务中:

.pipe(plugins.if(
  !config.isDevelopmentMode && config.compileBladeTemplates, replaceChannel()))
相关问题