2015-08-27 17 views
0

我試圖抓住通過流的每個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'))) 
}); 

回答

0

難道你不能只聲明_base上面的return語句嗎?

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'))) 
}); 
+0

似乎合乎邏輯,對吧?我試過了,沒有運氣。 – user1464317

0

,因爲你出了運行流的範圍無法訪問這樣的文件名。你需要做的是在你的水龍頭中使用文件名或使用through2。你想要具體實現什麼?

相關問題