有没有办法发送gulp.src(一些数据)而不是glob?

时间:2016-05-25 21:30:05

标签: json node.js gulp glob node-streams

我希望能够编辑JSON然后通过gulp流发送它。我知道有gulp-json-edit但是我想知道它是如何完成的并且自己做。在这种情况下,要更改基本授权。

例如,像这样:

var data = JSON.parse(fs.readFileSync('./core-config.json'));


data.local.ENDPOINT.CORE.BASIC = "Basic Stuff";

gulp.src(data)
    .pipe(somestuff)
    .pipe(gulp.dest('./'));

然而,这当然不起作用,因为data不是一个全局。然后我怎么能以一种我可以传递给gulp.src()的方式操纵data

1 个答案:

答案 0 :(得分:1)

前段时间我写了一个模块,可以将常规对象流转换为乙烯流:vinylize。它对于静态站点生成非常有用,但如果我正确理解您的问题,它也应该能够处理您的用例。

使用vinylize()的示例代码如下所示:

var vinylize = require('vinylize');

var data = JSON.parse(fs.readFileSync('./core-config.json'));
data.local.ENDPOINT.CORE.BASIC = "Basic Stuff";

vinylize([data], {
  path: 'core-config.json',
  contents: JSON.stringify(data),
  ignoreSourceProps: true,
})
.pipe(somestuff)
.pipe(gulp.dest('./'));