最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Gulp, using current filename in `pipe()` function - Stack Overflow

programmeradmin1浏览0评论

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.

发布评论

评论列表(0)

  1. 暂无评论