Ich habe einen Ordner mit HTML-Dateien, die oben einen Kommentar mit Metadaten enthalten. Ich möchte eine gulp-replace
Operation ausführen, wenn die Metadaten mit einer Regex übereinstimmen, und eine andere gulp-replace
-Operation, wenn sie nicht übereinstimmt, und dann mit dem Rest der Task-Pipeline fortfahren. Wenn versucht, verschiedene Iterationen gulp-if
verwenden, aber es ergibt sich immer in „Typeerror: nicht definiert ist keine Funktion“ Fehlergulp-replace, wenn der Inhalt von Dateien mit Regex übereinstimmt
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'));
}
Was ist der effizienteste Weg, um dies zu realisieren?
Es ist '.pipe ($. Ersetzen (template_data, ''))' 'nicht .pipe ($. Ersetzen, template_data, '')' –
Interessant, hatte der Rahmen war ich mit beiden Varianten in seinem gulpfile. –