什么是.pipe()函数在gulp中返回?

在下面的代码片段中,input和输出.pipe(gulpIf('*.css', cssnano()))什么?

 gulp.task('useref', function(){ return gulp.src('app/*.html') .pipe(useref()) .pipe(gulpIf('*.js', uglify())) .pipe(gulpIf('*.css', cssnano())) .pipe(gulp.dest('dist')) }); 

API文档( 链接 )说.pipe(destination)返回一个引用设置链的目的地stream,如果是这样的话.pipe(gulpIf('*.js', uglify()))将返回stream到一个缩小的.js文件,它怎么可以通过pipe道。 .pipe(gulpIf('*.css', cssnano()))

Gulp只是一个具有相当简单的基本function的任务运行者。 它的力量来自广泛的第三方软件包生态系统,其中你自己的片段至less使用了四个。 我说,因为这是什么显示在你的gulpfile.js源代码, gulp本身有13个直接的运行时依赖关系 :

 "dependencies": { "archy": "^1.0.0", "chalk": "^1.0.0", "deprecated": "^0.0.1", "gulp-util": "^3.0.0", "interpret": "^1.0.0", "liftoff": "^2.1.0", "minimist": "^1.1.0", "orchestrator": "^0.3.0", "pretty-hrtime": "^1.0.0", "semver": "^4.1.0", "tildify": "^1.0.0", "v8flags": "^2.0.2", "vinyl-fs": "^0.3.0" }, 

…以及类似数量的直接开发依赖关系。

gulp传递的stream是由乙烯fs提供的,并不代表单个文件,而是虚拟文件系统。

至于你的代码,你明确地只用HTML文件开始:

 gulp.src('app/*.html') 

…但之后你执行一个名为gulp-useref的第三方包:

 .pipe(useref()) 

根据其文档:

将parsingHTML中的构build块,replace它们并传递这些文件 。 构build块内部的资源将被连接起来并在stream中传递

换句话说,它parsingHTML文件以识别/生成资产文件,并将其添加到stream中以供进一步处理。

Interesting Posts