Browsersync中间件替换字符串

时间:2017-03-19 17:33:30

标签: middleware browser-sync gulp-browser-sync

我正在尝试创建一个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。任何有关这方面的帮助将非常感激!

1 个答案:

答案 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);
});