我正在尝试使用gulp-html-replace来使用流的内容进行替换.文档清楚地表明这是可能的(
https://www.npmjs.com/package/gulp-html-replace),但对我来说,它不起作用.
这是一个令人讨厌的gulp任务:
function processMarkup(sourceViewFilename, gameScriptFilename) {
return gulp.src('build/temp/views/' + sourceViewFilename)
.pipe(htmlReplace({
css: {
src: '/styles/arcadelyCommonGameStyles.min.css',
tpl: ''
},
commonjs: {
src: '/scripts/arcadely-common.min.js',
tpl: ''
},
js: {
src: '/scripts/' + gameScriptFilename,
tpl: ''
},
// THE FOLLOWING DOESN'T WORK...
baseInlineStyles: {
src: gulp.src('./build/temp/styles/baseInlineStyles.css'),
tpl: ''
}
}))
.pipe(gulpif(
options.buildTarget === 'production' || options.buildTarget === 'test',
htmlMin({collapseWhitespace: true})))
.pipe(gulp.dest('build/' + options.buildTarget + '/views/'));
}
...
gulp.task(
'process-starcastle-markup',
['clean', 'compile-views', 'compile-pages', 'process-inline-styles'],
function () {
return processMarkup('starcastle.html', 'starcastle.min.js');
});
问题是在标记中这个:
取而代之的是:
显然,我希望它被替换为我文档头部的内联CSS.
我所做的与文档中的示例之间的一个明显区别是:
文档:src:gulp.src(…).pipe(sass()),
我的:src:gulp.src(…),
即,我没有在任何其他地方管道流,因为不需要进一步处理:我已经在我的所有CSS中运行sass,并且如果需要取决于目标环境,则在此任务运行时缩小.
在我看来,我应该做一些像gulp.src(…).pipe(somethingElse())来获得我想要的结果,但我不确定whatElse()应该是什么,因为我只是想要流的原始内容.这肯定是非常简单的东西,但我仍然足够n00b与这些东西错过它的方法.
有人有什么建议吗?
编辑
var gutil = require('gulp-util');
...
baseInlineStyles: {
src: gulp.src('./build/temp/styles/baseInlineStyles.css').pipe(gutil.noop()),
tpl: ''
}
结果相同 – 我只是在处理后的视图中使用[object Object]而不是CSS.
谢谢,
巴特