2015-10-19 8 views
7

Próbuję wyrenderować każdy plik w moich plikach źródłowych potoku z własnym plikiem json, ale nie mogę wymyślić, jak uzyskać dostęp do bieżącej nazwy pliku w pipe funkcjonować.Gulp, używając aktualnej nazwy pliku w funkcji `pipe()`

var gulp = require('gulp'); 
var handlebars = require('handlebars'); 
var gulpHandlebars = require('gulp-compile-handlebars'); 

gulp.task('compile-with-sample-data', function() { 
    var options = {} 
    return gulp.src('./src/**/*.html') 
    .pipe(gulpHandlebars({ data: require('./data/' + filename +'.json') }, options)) 
    .pipe(gulp.dest('./build/')); 

}); 

Gdzie mogę zmusić go do pracy z tego samego pliku za każdym razem używając tylko require('./data/orders-complete.json'):

var gulp = require('gulp'); 
var handlebars = require('handlebars'); 
var gulpHandlebars = require('gulp-compile-handlebars'); 

gulp.task('compile-with-sample-data', function() { 
    var options = {} 
    return gulp.src('./src/**/*.html') 
    .pipe(gulpHandlebars({ data: require('./data/orders-complete.json') }, options)) 
    .pipe(gulp.dest('./build/')); 

}); 

Nie jest jasne, w jaki sposób to zrobić.

+1

Wygląda na to, że potrzebujesz czegoś takiego jak [gulp-tap] (https://www.npmjs.com/package/gulp-tap/), aby odsłonić ścieżki plików, zobacz [odpowiedź] (http: // stackoverflow. com/questions/21806925/get-the-current-file-name-in-gulp-src) – 1cgonza

+0

Udało ci się sprawić, żeby działało? Nie można uzyskać pożądanego efektu za pomocą dotknięcia kroplą – Femel

Odpowiedz

4

Użyj gulp-tap, pozwala uzyskać nazwę pliku, a nawet zmienić go dla dalszych rur.

Powiązane problemy