Я работал над потоками и преобразованиями в Node.js. Я написал преобразование, которое выполняет поиск и замену.
Если у меня есть входной файл, например
name: bob
name: mike
, и я хотел найти все «имя» и заменить его на «Имя»
First Name: bob
First Name: mike
Я должен был проверить каждого персонажа. Т.е. "n" === "name"[0]
Я хотел сделать эту работу с кусками, которые являются всего одним символом, потому что это в любом случае имеет значение. Чтобы проверить это, я создал читаемые потоки, такие как Fs.createReadStream(file, {highwatermark:1});
, что означает, что буквально 1 символ читается за раз в функции _transform(chunk)
. Это прекрасно работает, потому что если я обнаруживаю начало совпадения, я собираю куски в буфер, пока не будет найдено полное совпадение. Затем я продолжаю.
Теперь я хочу добавить минификацию к своему проекту. У меня вопрос - может ли минификатор (css / html / js) работать на одном уровне, или он должен сначала объединить все фрагменты? Если да, то делает ли это минимизацию потоков совершенно бессмысленной? Суть потока в том, что вы получаете куски данных, но чтобы минимизировать что-то, вам не нужен весь файл, чтобы он был целым? Будет ли какое-либо преимущество, кроме того, что оно выглядит круто, потому что оно использует pipe
как gulp
?