如何在Gulp中将变量从一个管道传送到另一个管道

时间:2016-03-11 16:38:22

标签: node.js gulp pug filestream

gulp.task('jade:prod:DE_EN', function () {
return gulp.src('./views/*.jade')
    .pipe(tap(function(file) {
        console.log(path.basename(file.path))
    }))
    .pipe(jade({
        locals: {
            env: 'production',
            texts: texts.EN,
            config: texts.EN['config']
        }
    }))
    .pipe(gulp.dest('./public/de/en'));
});

console.log(path.basename(file.path))返回通过流的.jade文件。

我想知道如何获取该变量并将其作为本地人之一传递给jade管道。这样我就可以在编译时在Jade中使用它。

任何其他链接/参考/文档都可以解释管道/流如何工作。

1 个答案:

答案 0 :(得分:0)

从一个Transform(您传递给pipe())到下一个vinyl-fs的数据的唯一方法是将数据附加到正在流中的gulp-data文件对象。 {{3}}插件让你这样做:

gulp.task('jade:prod:DE_EN', function () {
  return gulp.src('./views/*.jade')
    .pipe(data(function(file) {
       return { 
         myBasename: path.basename(file.path),
         env: 'production',
         texts: texts.EN,
         config: texts.EN['config']
       };
    }))
   .pipe(jade())
   .pipe(gulp.dest('./public/de/en'));
});

现在您可以访问Jade模板中的myBasename本地:

doctype html
html(lang="en")
  head
    title=Test
  body
    h1 #{myBasename}