如何获取基本文件名并将其作为变量传递到gulp中的管道?

时间:2015-08-27 13:32:48

标签: gulp ejs gulp-tap

我试图获取通过流的每个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 个答案:

答案 0 :(得分:0)

您是否只能在返回声明上方声明_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')))
});

答案 1 :(得分:0)

您无法访问这样的文件名,因为您不在运行流的范围内。您需要做的是在点击中使用文件名或使用through2。你想要具体实现什么目标?