admin管理员组

文章数量:1130349

I'm trying to render each file in my gulp source files with it's own json file, but I can't figure out how to access the current filename in the pipe function.

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

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

});

Where I can get it to work with the same file each time by just using require('./data/orders-plete.json'):

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

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

});

It's not clear how I would do this.

I'm trying to render each file in my gulp source files with it's own json file, but I can't figure out how to access the current filename in the pipe function.

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

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

});

Where I can get it to work with the same file each time by just using require('./data/orders-plete.json'):

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

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

});

It's not clear how I would do this.

Share Improve this question asked Oct 19, 2015 at 1:58 JP SilvashyJP Silvashy 48.6k50 gold badges153 silver badges230 bronze badges 2
  • 2 Sounds like you need something like gulp-tap to expose your file paths, see this answer – 1cgonza Commented Oct 19, 2015 at 3:56
  • Did you manage to get it working? Can't achieve the desired effect with gulp-tap – eugenesqr Commented Nov 30, 2016 at 17:48
Add a ment  | 

1 Answer 1

Reset to default 4

Use gulp-tap, it enables you to get the file name and even change it for downstream pipes.

I'm trying to render each file in my gulp source files with it's own json file, but I can't figure out how to access the current filename in the pipe function.

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

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

});

Where I can get it to work with the same file each time by just using require('./data/orders-plete.json'):

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

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

});

It's not clear how I would do this.

I'm trying to render each file in my gulp source files with it's own json file, but I can't figure out how to access the current filename in the pipe function.

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

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

});

Where I can get it to work with the same file each time by just using require('./data/orders-plete.json'):

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

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

});

It's not clear how I would do this.

Share Improve this question asked Oct 19, 2015 at 1:58 JP SilvashyJP Silvashy 48.6k50 gold badges153 silver badges230 bronze badges 2
  • 2 Sounds like you need something like gulp-tap to expose your file paths, see this answer – 1cgonza Commented Oct 19, 2015 at 3:56
  • Did you manage to get it working? Can't achieve the desired effect with gulp-tap – eugenesqr Commented Nov 30, 2016 at 17:48
Add a ment  | 

1 Answer 1

Reset to default 4

Use gulp-tap, it enables you to get the file name and even change it for downstream pipes.

本文标签: javascriptGulpusing current filename in pipe() functionStack Overflow