在以下代码段中,.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文档(link)说.pipe(destination)
返回对目标流的引用以设置链,如果是这样.pipe(gulpIf('*.js', uglify()))
将流返回到缩小的.js文件,怎么能它被传送到.pipe(gulpIf('*.css', cssnano()))
?
答案 0 :(得分:1)
Gulp只是一个具有相当简单的基本功能的任务选手。它的功能来自广泛的第三方软件包生态系统,其中您自己的代码段至少使用了四个。我说四,因为这是你的 gulpfile.js 源代码中显示的内容; gulp本身有13 direct runtime dependencies:
"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传递的流由vinyl-fs提供,并不代表单个文件,而是虚拟文件系统。
关于您的代码,您最终只能使用HTML文件:
gulp.src('app/*.html')
...但在此之后您执行名为gulp-useref的第三方软件包:
.pipe(useref())
根据其文档:
将解析HTML中的构建块,替换它们并传递它们 文件通过。构建块内的资产将被连接起来 在流中传递。
换句话说,它解析HTML文件以识别/生成资产文件,并将它们添加到流中以供进一步处理。