什么是.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中以供进一步处理。