Как установить свойство содержимого в виниле? - PullRequest
0 голосов
/ 24 января 2019

Я учусь создавать плагины gulp и просто немного поиграюсь.Я пытаюсь создать плагин, который удаляет голосовые буквы из содержимого файла.Вроде бы просто, но я сталкиваюсь с ошибкой при установке свойства содержимого выходного винила.Ошибка говорит:

Error: File.contents can only be a Buffer, a Stream, or null

Я нырнул в виниловый код на github и обнаружил, что при установке свойство проверяет, является ли значение Поток , Буфер или null , чтобы выдать эту ошибку.

Я следовал этому правилу и создал значение моего содержимого из метода Buffer.from.Я предположил, что этого достаточно, но та же ошибка все еще появляется.Итак, я погрузился в виниловый код в поисках этой проверки и обнаружил, что она использует метод Buffer.isBuffer.Следующим шагом была запись в консоль, если мое значение контента действительно является экземпляром буфера, и обнаружил это:

var Buffer = require('Buffer').Buffer;
var Vinyl = require('vinyl');

# stuff for creating gulp plugin
var vinylInstance = // stuff for creating vinyl file.
var content = Buffer.from(new String('this is my content'));

# check if content is an array
console.log(Buffer.isBuffer(content)); // console shows true
console.log(vinylInstance.isBuffer(content)); // console shows false

Теперь я застрял на этом этапе и не знаю, как это реализовать.Я гуглил много раз, и все статьи, посты, ответы и т. Д. Обнаружили, что построение свойства содержимого происходит так же, как и я.Вот мой код:

var removeLetters = new stream.Transform({
        readableObjectMode: true,
        writableObjectMode: true,

        transform: function(chunk, encoding, callback) {
            var contents = Buffer.from(chunk.contents.toString());
            var file = new vinyl({
                base: chunk.base,
                path: chunk.base + '/transform.js',
                contents: Buffer.from(chunk.contents.toString().replace(/aeiou/gi).trim()),
            });
            this.push(file);
            callback();
        }
    });

Может кто-нибудь помочь узнать, что я делаю не так?

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...