我正在尝试创建一个浏览器同步中间件,以便在将HTML文件提供给浏览器之前替换它们中的字符串。
我不完全确定这是否可能。
到目前为止,我能够确定何时通过以下方式请求HTML文件:
function hublMiddleware (req, res, next) {
var parsed = require("url").parse(req.url);
if (parsed.pathname.match(/.html$/)) {}
next();
};
我可以在if
语句中放一个console.log()
,这样我知道它正在工作。
但从这里我真的被困住了。我已经搜索了如何做到这一点的例子,例如
res.removeHeader('Content-Length');
res.pipe($.replace(/({{s|s}})|({%.*%})/g, '<!---->'))
.pipe(res);
return next();
但无济于事。
我应该说我正在使用Gulp的Browsersync。任何这方面的帮助将不胜感激!
这个完全符合你的要求:BS-重写规则
这是我如何使用它:
gulp.task('serve', function () {
browserSync({
port: 8000,
server: {
baseDir: './'
},
plugins: ['bs-rewrite-rules'],
rewriteRules: [
{
match: 'YOUR_GOOGLE_MAPS_API_KEY',
replace:'<MY_ACTUAL_API_KEY>'
}
]
});
gulp.watch(['*.html', 'css/**/*.css', 'js/**/*.js'], reload);
});