我正在尝试创建一个Browsersync中间件来替换HTML文件中的字符串,然后再将它们提供给浏览器。
我不完全确定这是可能的。
到目前为止,我能够确定何时请求HTML文件:
function hublMiddleware (req, res, next) {
var parsed = require("url").parse(req.url);
if (parsed.pathname.match(/\.html$/)) {}
next();
};
我可以在console.log()
声明中添加if
,因此我知道它正在发挥作用。
但是从这里我真的被卡住了。我已经搜索了如何做到这一点的例子,例如
res.removeHeader('Content-Length');
res.pipe($.replace(/({{\s|\s}})|({%.*%})/g, '<!---->'))
.pipe(res);
return next();
但无济于事。
我应该说我正在使用与Gulp的Browsersync。任何有关这方面的帮助将非常感激!
答案 0 :(得分:0)
这个完全符合您的要求: bs-rewrite-rules
以下是我如何使用它:
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);
});