【问题标题】:How to load contents of an external file into gulp browser-sync如何将外部文件的内容加载到 gulp browser-sync
【发布时间】:2015-07-23 21:34:20
【问题描述】:

我正在加载浏览器同步代理,并希望从外部文件加载搜索和替换术语,以便在页面加载到浏览器时对其进行修改。

我想从单独的文件中加载搜索和替换术语的原因是因为我想使用 gulp-watch 并在搜索和替换术语更新时重新加载浏览器同步。

我的项目文件夹:

  • regex/search.txt
  • regex/replace.txt
  • gulpfile.js

gulpfile.js 的内容:

var gulp = require('gulp'),
fs = require("fs"),
browserSync = require('browser-sync');

var proj_url = "http://www.example.com";
var search_text = "";
var replace_text = "";

gulp.task('readRegEx', function() {
    return gulp.src('regex/*.txt')
    .pipe(fs.readFile("regex/search.txt", "utf-8", function(err, data) {
        search_text = data;
    }))
    .pipe(fs.readFile("regex/replace.txt", "utf-8", function(err, data) {
        replace_text = data;
    }))
});

gulp.task('browser-sync', function() {
    browserSync({
        proxy: {
            target: proj_url
        },
        rewriteRules: [
            {
                match: search_text,
                fn: function (match) {
                    return replace_text;
                }
            }
        ]
    });
});

gulp.task('default', ['readRegEx','browser-sync'], function() {
    gulp.watch(['regex/*.txt'], [browserSync.reload]);
});

这不起作用。我收到以下错误:

TypeError: Cannot call method 'on' of undefined ...

【问题讨论】:

    标签: node.js gulp browser-sync


    【解决方案1】:

    为此,您需要使浏览器同步依赖于 readRegEx

    gulp.task('browser-sync', ['readRegEx'], function() {
    

    这保证了正确的执行顺序。

    那么您可以通过这种方式使 readRegEx 同步(并且更简单):

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

    【讨论】:

    • 谢谢。在阅读 readRegex 时使浏览器同步依赖的附加细节真的很有帮助!一件小事:当我更新 replace.txt 时,browsersync 重新加载正常,但在我更新 search.txt 时没有重新加载。
    • 奇怪,您的手表表达式似乎可以很好地捕获两个文件。
    • 它实际上会刷新,但由于某种原因,除非我再次运行 gulp,否则不会获取 search.txt 更改。
    • 啊,有道理,你告诉 browsersync 重新加载浏览器,但是没有什么要重新加载那些 txt 文件。
    猜你喜欢
    • 2016-04-22
    • 2017-05-15
    • 2020-10-17
    • 1970-01-01
    • 2015-11-08
    • 2016-01-28
    • 1970-01-01
    • 2016-11-11
    • 2015-09-01
    相关资源
    最近更新 更多