Я сделал это.
Принимая во внимание исходный поток, который заканчивался отправкой измененных объектов винилового файла gulp-front-material, я смог получить доступ к новым свойствам yaml, прикрепив свой собственный поток преобразования, который читаетвходящий виниловый объект.Пример, который я включил, отсутствует в любой реализации задачи Gulp 4, он работает, просто запустив node index.js
.
const { Transform } = require('stream');
const { src, dest } = require('gulp');
const Vinyl = require('vinyl');
const frontMatter = require('gulp-front-matter');
const streamToArray = require('stream-to-array');
function fmData() {
return (
new Transform({
readableObjectMode: true,
writableObjectMode: true,
transform(chunk, encoding, callback) {
if (Vinyl.isVinyl(chunk)) {
this.push(chunk.frontMatter);
}
callback();
}
})
)
}
streamToArray(
src('file.md')
.pipe(frontMatter())
.pipe(fmData())
).then(array => {
console.log(array);
});
. Включены зависимости в стиле npm package.json
.
"dependencies": {
"gulp": "^4.0.0",
"gulp-front-matter": "^1.3.0",
"stream-to-array": "^2.3.0",
"vinyl": "^2.2.0"
}
По правде говоря, объект винилового файла ожидает чтения, хотя для этого требуется, чтобы он был выполнен в поточном конвейере.Я наблюдал за выступлением 2013 в MNUG , читал бесплатное учебное пособие по кодам и просматривал документацию потока узлов , чтобы завершить это.