gulp的源码中哪部分是定义.pipe()的?


我在本地做一个最简单的gulp的demo


 var gulp = require('gulp');
var less = require('gulp-less');
var autoprefix = require('gulp-autoprefixer');

gulp.task('css', function(){
        gulp.src('assets/app.less')
                .pipe(less())
                .pipe(autoprefix('last 2 version', 'ie 8', 'ie 9'))
                .pipe(gulp.dest('build/css'));
});

现在我想看看.pipe()是在哪儿定义的,我找到了3个index.js,分别是:

node_modules/gulp-less/node_modules/gulp-util/node_modules/multipipe/index.js
node_modules/gulp-less/node_modules/gulp-less/node_modules/multipipe/index.js
node_modules/gulp-less/node_modules/gulp-autoprefixer/node_modules/multipipe/index.js

比如第一个index.js里有如下定义:


 function pipe(){
  if (arguments.length == 1) return arguments[0];
  var streams = slice.call(arguments);
  var cb;
  if ('function' == typeof streams[streams.length - 1]) {
    cb = streams.splice(-1)[0];
  }
  ...
  ...
  return ret;
}

现在,我想试着加进去一个console.log(),来查看pipe()函数的内部状况,比如:


 function pipe(){
  console.log("Here!");
  if (arguments.length == 1) return arguments[0];
  var streams = slice.call(arguments);
  ...
}

然后运行 gulp css
结果控制台并没有如我所愿出现 Here!

不知道是哪里的问题呢?

gulp pipe node.js

mawron 8 years, 10 months ago

Your Answer