【问题标题】:How to carry a variable from one pipe to another in Gulp如何在 Gulp 中将变量从一个管道传送到另一个管道
【发布时间】:2016-03-11 16:38:22
【问题描述】:
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 中使用它。

任何解释管道/流如何工作的其他链接/参考/文档将不胜感激。

【问题讨论】:

    标签: node.js gulp pug filestream


    【解决方案1】:

    从一个Transform(传递给pipe() 的东西)到下一个获取数据的唯一方法是将其附加到在流中移动的vinyl-fs 文件对象。 gulp-data 插件让你做到这一点:

    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}
    

    【讨论】:

      猜你喜欢
      • 2020-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2018-05-02
      • 1970-01-01
      • 2022-07-29
      相关资源
      最近更新 更多