Запись функции pipe в файл gulp js - PullRequest
0 голосов
/ 27 июня 2018

Я очень новичок в Gulp и его библиотеках. Я только что увидел пост в StackOverflow о написании функции канала с использованием JavaScript внутри gulpfile.js. Я попытался поэкспериментировать с ним, написав очень короткую трубу, полученную из WriteStream:

var gulp = require('gulp');
var connect = require('gulp-connect');
var PATHS = {
  src: 'src/**/*.ts',
  html: 'src/**/*.html',
  css: 'src/**/*.css'
};

var stream = require('stream');
//var map = require('map-stream');

var writable = new stream.Writable({
  write: function(chunk, encoding, next) {
    console.log(chunk.toString());
    next();
  }
});
gulp.task('test', function() {
    var test = gulp.src(PATHS.src);

    gulp.src(PATHS.src)
    .pipe(writable);
});

Это дает мне, однако, следующую ошибку, которую я не понимаю:

(node:5396) ExperimentalWarning: The http2 module is an experimental API.
[13:28:25] Starting 'test'...
[13:28:25] Finished 'test' after 7.12 ms
events.js:183
      throw er; // Unhandled 'error' event
      ^

TypeError: Invalid non-string/buffer chunk
    at validChunk (_stream_writable.js:254:10)
    at Writable.write (_stream_writable.js:288:21)
    at write (C:\AngularIBought\angular2byexample-base\trainer\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:623:24)
    at flow (C:\AngularIBought\angular2byexample-base\trainer\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:632:7)
    at DestroyableTransform.pipeOnReadable (C:\AngularIBought\angular2byexample-base\trainer\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:664:5)
    at emitNone (events.js:106:13)
    at DestroyableTransform.emit (events.js:208:7)
    at emitReadable_ (C:\AngularIBought\angular2byexample-base\trainer\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:448:10)
    at emitReadable (C:\AngularIBought\angular2byexample-base\trainer\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:444:5)
    at readableAddChunk (C:\AngularIBought\angular2byexample-base\trainer\node_modules\vinyl-fs\node_modules\readable-stream\lib\_stream_readable.js:187:9)

Что не так с моим кодом? С Уважением, Януш

1 Ответ

0 голосов
/ 27 июня 2018

Проблема связана с функцией writable и не обязательно функцией pip. Функция pip, но ниже - это реальное использование функции pipe:

// Compress and minify images to reduce their file size
gulp.task('images', function() {
    var imgSrc = './src/images/**/*',
        imgDst = './images';

    return gulp.src(imgSrc)
        .pipe(plumber({
            errorHandler: onError
        }))
        .pipe(changed(imgDst))
        .pipe(imagemin())
        .pipe(gulp.dest(imgDst))
        .pipe(notify({ message: 'Images task complete' }));
});

Если вы предоставите больше информации, например, о том, что делает функция writable, я мог бы помочь переписать ее.

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