更新文件时重新加载浏览器同步RewriteRules

时间:2015-08-18 18:18:59

标签: gulp browser-sync

我正在尝试重写通过BrowserSync代理加载的网站的HTML。

我有一个:

  • ./ src / search.txt - 包含正则表达式匹配
  • ./ build / replace.txt - 包含网页的替换HTML

我希望每次更改这些文件时都重新加载browserSync。

我的gulpfile:

gulp.task('readRegEx', function() {
    search_text = fs.readFileSync("./src/search.txt", "utf-8").toString();
    replace_text = fs.readFileSync("./build/replace.txt");
});

gulp.task('browser-sync', ['readRegEx'], function() {
    browserSync({
        files: ['./src/search.txt','./build/replace.txt'],
        proxy: {
            target: "http://www.example.com"
        },
        rewriteRules: [
            {
                match: new RegExp(search_text,"g"),
                once: true,
                fn: function (match) {
                    return replace_text;
                }
            }
        ]
    });
});

这个ALMOST有效。

它读取/src/search.txt并加载(正则表达式),然后用/build/replace.txt的内容替换它。

但它只能运作一次。因此,如果我更新 search.txt replace.txt ,则browserSync会重新加载但 rewriteRules 位不会再次运行。

有没有办法告诉browserSync中的rewriteRules在文件更新时再次运行?

1 个答案:

答案 0 :(得分:0)

我认为你应该每次都阅读文件。

use PDF::TextBlock;
my $tb  = PDF::TextBlock->new({
    pdf       => $pdf,
    page      => $page,
    x            => 20,
    y            => 200,
    w            => 550,
    fonts     => {
       b => PDF::TextBlock::Font->new({
       pdf  => $pdf,
       font => $pdf->corefont( 'Helvetica-Bold', -encoding => 'latin1' ),
     }),
   },
 });