仅在初始加载时浏览器同步[代理错误] ECONNREFUSED

时间:2015-12-15 03:18:03

标签: gulp browser-sync

我的gulp和浏览器同步设置让我感到非常奇怪。

当我运行gulp serve任务时,gulp任务会运行并构建所有内容并打开Web浏览器,它就会停留在那里。我去检查控制台,我收到了这个错误。

[gulp-bs] Watching files...
[gulp-bs] [proxy error] connect ECONNREFUSED
Mongoose connected to mongodb://localhost/<database name>

现在有趣的是,当我使用浏览器栏点击该URL来加载应用程序时,所有内容都正确加载。

为什么会发生仅第一次时间,但后续重新加载浏览器网址会有效?

我似乎无法弄清楚导致此错误的原因,我不想在初始加载后继续重新加载浏览器。

浏览器同步的我的gulp设置如下所示:

"gulp": "^3.9.0",
"browser-sync": "^2.7.13"

nodemon gulp-task调用该函数。

function serve(isDev) {
    var options = {
        script: config.nodeServer,
        delayTime: 1,
        env: {
            "PORT": config.port,
            "NODE_ENV": isDev ? "dev" : "production"
        }
    };

    $.nodemon(options)
        .on("restart", function(ev) {
            log("*** nodemon restarted.");
            log("files changed on restart: " + ev);

            setTimeout(function() {
                browserSync.notify("Reloading now...");
                browserSync.reload({
                    stream: false
                });
            }, config.browserReloadDelay);
        })
        .on("start", function() {
            log("*** nodemon started.");
            startBrowserSync(isDev);
        })
        .on("crash", function() {
            log("*** nodemon crashed due to unexpected reason(s).");
        })
        .on("exit", function() {
            log("*** nodemon exited successfully!.");
        });
}

浏览器同步功能:

function startBrowserSync(isDev) {
    log("*** Starting browser sync");
    if (browserSync.active || args.nosync) {
        return;
    }

    if (isDev) {
        gulp.watch([config.styles], ["styles"])
            .on("change", function(event) {
                changeEvent(event);
            });
        gulp.watch([config.js], ["wiredep"])
            .on("change", function(event) {
                changeEvent(event);
            });
    } else {
        gulp.watch([config.styles, config.js, config.html], ["optimize", browserSync.reload])
            .on("change", function(event) {
                changeEvent(event);
            });
    }

    var options = {
        proxy: "localhost:" + config.port,
        port: 8000,
        files: isDev ? [
            config.client + "**/*.*",
            "!" + config.styles,
            config.css + "**/*.css"
        ] : [],
        ghostMode: {
            clicks: true,
            scroll: true,
            location: false,
            forms: true
        },
        injectChanges: true,
        logFileChanges: true,
        logLevel: "debug",
        logPrefix: "gulp-bs",
        notify: true,
        reloadDelay: 1,
    };

    browserSync(options);
}

config.port值设置为3000,从配置文件中读取。

0 个答案:

没有答案