2016-05-25 15 views
0

Ich möchte JSON bearbeiten und dann durch den Schluck Stream senden. Ich weiß, dass es gulp-json-edit gibt, aber ich möchte verstehen, wie es gemacht wird und es selbst machen. In diesem Fall, um die Basisberechtigung zu ändern.Gibt es eine Möglichkeit, gulp.src (einige Daten) anstelle eines Globs zu senden?

Zum Beispiel so etwas wie diese:

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


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

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

Allerdings ist dies natürlich nicht funktioniert, weil data kein Klacks ist. Wie kann ich dann data so manipulieren, dass ich es dann an gulp.src() übergeben kann?

Antwort

1

Vor einer Weile schrieb ich ein Modul, das einen regelmäßigen Objektstrom in einen Vinylstrom verwandeln kann: vinylize. Es ist vor allem nützlich für die statische Site-Generierung, aber wenn ich Ihre Frage richtig verstehe, sollte es auch in der Lage sein, Ihren Anwendungsfall zu behandeln.

Ihr Beispielcode vinylize() mit würde wie folgt aussehen:

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

Dank. Das sieht definitiv so aus, als ob es funktionieren würde, aber ich habe mehr danach gesucht, wie man diese Konvertierung wirklich macht und warum es was gulp.src braucht. Ich werde in den Quellcode des Plugins schauen, aber Knoten ist (bis jetzt) ​​alles sehr verwirrend für mich! – MaxRocket