Как изменить файл с помощью gulp through2?

Есть файл, который открываю с помощью src и пытаюсь изменить с помощьью gulp-through2.obj. Для теста хочу изменить текст "someText" в нем на сформированную строку, но замены не происходит. Мой task выглядит так:

gulp.task(`wp`, () => {
    let filepathes = new Array();
    return src(project.src.html)
        .pipe(through((file, enc, cb) => {
            fs.readFile(file.path, "utf-8", (err, doc) => {
                if (err) console.log(err);
                filepathes = doc.match(/([`"'])\S+?\.(css)\1/gi);
                console.log(filepathes)
                let replaceExp = new RegExp(`wp_enque_style(` + filepathes[0] + "\);\r\n");

                doc.replace('someText', replaceExp)

            })
            return cb(null, file)
        }))
        .pipe(rename({ extname: `.php` }))
        .pipe(dest(project.build.php))
}
);

Хотя текст искомый текст в файле есть. Ошибок в консоль тоже не выбрасывает. console.log при этом работает корректно. В чем может быть проблема? Замены нет потому, что fs.readFile открывает файл только для чтения? Как тогда открыть его и на изменение?

Сам файл:

<!DOCTYPE html>
<html lang="en">
someText

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" href="css/style.min.css">

    <title>Document</title>

</head>

<body class="wrapper">

    <main class="page">

    </main>
    </div>
</body>
<script type="text/javascript" src="js/script.min.js"></script>

</html>

Ответы (1 шт):

Автор решения: nazarpunk

С последними обновлениями gulp-through2.obj отказался запускаться, попробуйте так:

'use strict';

const {task, src, dest} = require(`gulp`);
const fs = require(`fs`);
const rename = require(`gulp-rename`);
const transfob = require(`transfob`);

task(`wp`, () => {
         let filepathes = [];
         return src(project.src.html)
             .pipe(rename({extname: `.php`}))
             .pipe(dest(project.build.php))
             .pipe(transfob((file, enc, next) => {
                 fs.readFile(file.path, 'utf8', (err, doc) => {
                     if (err) return console.log(err);
                     filepathes = file.contents.toString().match(/([`"'])\S+?\.(css)\1/gi);
                     console.log(filepathes);
                     const result = doc.replace('someText', `wp_enque_style(${filepathes[0]});\r\n`);
                     fs.writeFile(file.path, result, 'utf8', err => {
                         if (err) return console.log(err);
                     });
                 });
                 next(null, file);
             }))
     }
);
→ Ссылка