最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

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

matteradmin6PV0评论

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.

Post a comment

comment list (0)

  1. No comments so far