将gulp任务编写为管道

时间:2018-07-01 06:13:06

标签: javascript node.js gulp

我对Node和gulp很陌生,我想学习。 作为一个实验,我试图编写一个小任务,只在控制台上打印它从gulp.src()方法接收的流的内容。因此,我以这种方式实现了它(注释的代码有效,而未注释的代码无效)。我在做什么错了?

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

gulp.task('test', function() {
    // This is working !!!
    /*
     * fs.createReadStream('ex.txt').pipe(through(function(chunk, enc, callback) {
     * console.log("Text is: " + chunk.toString());
     *
     * this.push(chunk)
     *
     * callback() })).pipe(fs.createWriteStream('out.txt')).on('finish',
     * function() { console.log("Working"); })
     */
    // But this is not working, why !!!
    var writable = through.obj(function(chunk, enc, callback) {
        if (chunk.isStream()) {
            console.log("Chunk is stream ");
            console.log("Path is: " + chunk.path);
        } else if (chunk.isBuffer()) {
            console.log("Chunk is buffer ");
        } else {
            console.log("Chunk is something else then stream or buffer");
        }
        this.push(chunk);
        callback();
    });
    gulp.src('ex.txt').pipe(writable);
});

顺便说一句-我如何分辨“ chunk ”是什么类型的对象以及可以在该对象上调用的方法(在何处进行了说明-我习惯了Java风格文档)?

对于经验丰富的Node.js和gulp用户而言,这些问题可能是微不足道的,但是我很难理解它们。 如果有人可以帮助我度过这个学习过程,我将不胜感激。

0 个答案:

没有答案