【问题标题】:Is there a way to send gulp.src(some data) instead of a glob?有没有办法发送 gulp.src(some data) 而不是 glob?
【发布时间】:2016-09-23 16:41:52
【问题描述】:

我希望能够编辑 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 不是一个 glob。然后我该如何操作data,然后将其传递给 gulp.src()?

【问题讨论】:

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


    【解决方案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('./'));
    

    【讨论】:

    • 谢谢。这绝对看起来可行,但我更多的是在寻找如何实际进行插件所做的转换以及为什么它是 gulp.src 需要的。我会查看插件源代码,但节点(到目前为止)对我来说非常混乱!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 2012-12-14
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多