2016-05-25 141 views
0

我希望能夠編輯JSON,然後通過gulp流發送它。我知道這裏有gulp-json-edit,但我想了解它是如何完成的,並且自己做。在這種情況下,更改基本授權。有沒有辦法發送gulp.src(某些數據)而不是glob?

例如,這樣的事情:

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不是水珠。然後我怎麼操作data,然後我可以將它傳遞給gulp.src()?

回答

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('./')); 
+0

感謝。這絕對看起來像它的工作,但我更多地尋找如何實際上做你的插件轉換,爲什麼這是gulp.src需要。我會研究插件源代碼,但節點(到目前爲止)對我來說都非常困惑! – MaxRocket

相關問題