在以下代码中,我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')`
)
))
// ...
答案 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()))