Как мне получить базовое имя файла и передать его как переменную по конвейеру в gulp?
Я пытаюсь получить базовое имя каждого файла HTML, который проходит через поток. Код здесь явно не работает, потому что _base
больше не в сфере. Кажется, должен быть действительно простой способ сделать это, или, может быть, есть что-то встроенное в gulp-ejs, о котором я не знаю. Мысли?
gulp.task('html', function () {
return gulp.src('app/*.html')
.pipe(tap(function(file, t){
var _base = path.basename(file.path, '.html');
})
.pipe($.ejs(require('./app/'+_base+'.json')))
});
2 ответа
Вы не можете получить доступ к имени файла, как это, потому что вы находитесь вне области работающего потока. Что вам нужно сделать, это использовать имя файла в вашем кране или использовать via2. Что вы пытаетесь достичь конкретно?
Вы не можете просто заявить _base
выше декларации возврата?
gulp.task('html', function () {
var _base;
return gulp.src('app/*.html')
.pipe(tap(function(file, t){
_base = path.basename(file.path, '.html');
})
.pipe($.ejs(require('./app/'+_base+'.json')))
});