我有一个 HTML 文件文件夹,其中包含顶部带有元数据的注释。gulp-replace
如果元数据与一个正则表达式匹配,我想运行一个操作,gulp-replace
如果它不匹配,我想运行另一个操作,然后继续执行任务管道的其余部分。如果尝试使用各种迭代gulp-if
但它总是导致“TypeError:undefined is not a function”错误
import gulp from 'gulp';
import plugins from 'gulp-load-plugins';
const $ = plugins();
function preprocess() {
var template_data = new RegExp('<!-- template_language:(\\w+)? -->\n', 'i');
var handlebars = new RegExp('<!-- template_language:handlebars -->', 'i');
var primaryColor = new RegExp('#dc002d', 'gi');
var mailchimpColorTag = '*|PRIMARY_COLOR|*';
var handlebarsColorTag = '{{PRIMARY_COLOR}}';
var replaceCondition = function (file) {
return file.contents.toString().match(handlebars);
}
return gulp.src('dist/**/*.html')
.pipe($.if(
replaceCondition,
$.replace(primaryColor, handlebarsColorTag),
$.replace(primaryColor, mailchimpColorTag)
))
.pipe($.replace, template_data, '')
.pipe(gulp.dest('dist'));
}
解决此问题的最有效方法是什么?