首页 > 解决方案 > 将 gulp 任务编写为管道

问题描述

我对 Node 和 gulp 很陌生,我正在努力学习。作为一个实验,我正在尝试编写一个小小的 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);
});

顺便说一句 - 我怎样才能知道什么样的对象是''以及我可以调用该对象的哪些方法(它们在哪里记录 - 我习惯于 Java 样式文档)?

对于有经验的 Node.js 和 gulp 用户来说,这些可能是微不足道的问题,但我很难理解它们。如果有人能帮助我完成这条学习曲线,我将不胜感激。

标签: javascriptnode.jsgulp

解决方案


推荐阅读