我想获取CSS处理步骤getCss
和JS处理步骤getJs
的结果,然后使用这两个结果创建一个名为index.html
的文件,这是将已处理的CSS内联并将已处理的JS内联到名为index-template.html
的模板中的结果。
有人可以帮助我更好地了解我如何实现这一目标吗?
这就是我到目前为止......
gulp.task('build', function() {
eventStream.merge(getCss.bind(gulp), getJs.bind(gulp))
.pipe(inlineJsAndCss.bind(gulp));
});
function getCss() {
return this.src(options.lessGlob)
.pipe(less())
.pipe(minifyCss());
}
function getJs() {
return this.src(options.jsGlob)
.pipe(uglify());
}
function inlineJsAndCss() {
// Take the CSS and the JS generated by
// previous steps and inline them into
// index-template.html
//...
.pipe(this.dest('index.html'));
}
编辑:是将中间步骤的结果存储在内存中,然后从中创建一个流,这是实现此目的的规范方法吗?
https://github.com/gulpjs/gulp/blob/master/docs/recipes/make-stream-from-buffer.md
答案 0 :(得分:0)
不需要使用eventStream.merge
。
只需将CSS和JS处理步骤的结果输出到最后一步可见的内存区域,然后相应地配置gulp依赖项。
像这样:
const sharedMemory = {};
gulp.task('css', partial(getCss, sharedMemory));
gulp.task('js', partial(getJs, sharedMemory));
gulp.task('inline', ['css', 'js'], partial(inline, sharedMemory));
gulp.task('build', ['replace']);
gulp.task('default', ['build']);