10
Сен
2021

Как изменить файл с помощью 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>

Источник: https://ru.stackoverflow.com/questions/1327327/%D0%9A%D0%B0%D0%BA-%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-%D1%84%D0%B0%D0%B9%D0%BB-%D1%81-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E-gulp-through2

Тебе может это понравится...

Добавить комментарий