Как правильно сохранить информацию из pipe в переменную и использовать эту переменную в потоке в дальнейшем?
Я использую gulp для верстки, и хочу сделать так, чтобы готовую верстку можно было конвертировать из html в php для wordpress. Я застрял на том, что мне нужно заменить все <link> и <script> на wp_enque_styles и wp_enque_scripts. Я смог получить пути к файлам с помощью модуля gulp-find , но проблема в том, что у меня не получается вытащить все из pipe и сохранить в переменную. Я попробовал вывети информацию хотя бы в консоль, но это также не сработало. Вот мой код:
let gulp = require("gulp"),
es = require("event-stream"),
fs = require("fs"),
find = require("gulp-find"),
rename = require("gulp-rename");
const action = es => es.map((file, cb) => {
console.log(file.path);
return cb();
});
gulp.task("wp", () => {
return src(project.src.html) // открыли файл
.pipe(find(/([`"'])\S+?\.(css|js)\1/gi)) // нашли все пути
.pipe(action(es)) // вызвали вывод путей в консоль
.pipe(rename({ extname: ".php" }))
.pipe(dest(project.build.php))
})
В консоль выводится информация о завершении task, но не выводится, найденная в файле информация:
Что я делаю не так? Как корректно обработать информацию с помощью pipe и вывести ее в консоль? А затем, сохранить в переменную для последующей работы?
Ответы (1 шт):
const {task, src, dest} = require(`gulp`);
const through = require(`through2`);
const fs = require(`fs`);
task(`wp`, () => src(project.src.html)
.pipe(through.obj((file, enc, cb) => {
console.log(file.path);
fs.readFile(file.path, `utf8`, (err, doc) => {
const find = doc.match(/([`"'])\S+?\.(css|js)\1/gi);
console.log(find);
});
return cb(null, file);
}))
.pipe(rename({extname: `.php`}))
.pipe(dest(project.build.php))
);
