@flafy4

Как получить содержимое файла, например css в gulp.src?

Как получить содержимое *.css файлов? Например записать содержимое каждого файла в массив?
function build() {
    return gulp.src('./src/css/*.css')
            ....
    /* Тут функция обработчик которая получает эти файлы */
}
  • Вопрос задан
  • 106 просмотров
Решения вопроса 2
sfi0zy
@sfi0zy Куратор тега JavaScript
Creative frontend developer
Есть такая штука, как gulp-tap, с ее помощью можно решить вашу задачу.

А в целом - содержимое файлов можно получать вне зависимости от сборщиков и таск-раннеров с помощью fs.readFile или fs.readFileSync (пример).
Ответ написан
Комментировать
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
Написать галп-плагин и воткнуть его в pipe

Каркас может быть примерно таким:

const through = require('through2');
const PLUGIN_NAME = 'my plugin ';
const myPlugin = function (options) {
    return through.obj(function (file, enc, cb) {
        if (file.isNull()) {
            cb(null, file);
            return;
        }
        if (file.isStream()) {
            cb(new Error(PLUGIN_NAME + 'Streaming not supported'));
            return;
        }
        try {
            let content = file.contents.toString();
            content     = '';// ... что-то делаем
            file.contents = Buffer.from(content);
        } catch (err) {
            this.emit('error', new Error(PLUGIN_NAME + err.message));
        }

        this.push(file);
        cb();
    });
};


Используем

function build() {
    return gulp.src('./src/css/*.css')
        .pipe(myPlugin)
        //...
}


Если нужно фильтровать по расширению (если src считывает разные файлы), можно добавить условие

if (/\.css$/.exec(file.path) !== null) {
  //...
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 12:53
1000 руб./за проект
19 апр. 2024, в 12:41
8000 руб./за проект
19 апр. 2024, в 12:05
1500 руб./в час