使用nodejs服务器配置browserSync

时间:2016-04-25 15:27:57

标签: node.js gulp browser-sync

我需要帮助来了解如何为节点服务器和浏览器同步配置端口。

在serevr.js文件中,http服务器正在侦听端口3006;     server.listen(3006);

我希望browsersync打开浏览器并将地址指向服务器端口3006。这是http服务器侦听的端口。所以地址为localhost:3006

gulpfile.js

gulp.task('serve', function() {
browserSync.init({
    server: {
        baseDir: './dist/'
    },
    port: 3006
 });
});
  1. 在mac终端中,我运行gulp。这会将浏览器打开到localhost:3006。细

  2. 在另一个终端窗口中,我启动节点服务器nodemon dist/serevr.js

  3. 我无法让他们变得一样。服务器无法启动,因为某些东西已在端口3006上运行(步骤1),或者如果我先启动服务器,则会发生以下情况。

    Local: http://localhost:3007
    External: http://192.168.1.63:3007
    

    我如何让他们一起工作?

    在以下答案的帮助下找到解决方案:

    gulp.task('serve', function() {
        browserSync.init({
            port: 3007,
            proxy: {
                target: "localhost:3006",
                ws: true
            }
        });
    });
    

2 个答案:

答案 0 :(得分:3)

基本上会运行两台服务器。一个nodemon操作,一个browser-sync将操作。两台服务器都不能有相同的端口。

您需要在gulp文件的浏览器同步配置部分代理用于nodemon的端口。因此,在浏览器同步可以代理节点服务器之前,您需要首先启动节点服务器。

如果您需要启用websockets,可以通过设置ws: true

来实现

这就是它的样子:

gulp.task('browserSync', function () {
    browserSync.init({
        port: 3007, // you can specify the port here
              // can't use the same port that nodemon uses.
        proxy: {
            target: 'localhost:3006', // original port
            ws: true // enables websockets
        }
    });
});

答案 1 :(得分:0)

browserSync.init启动服务器。 您不能两次绑定到一个端口。如果需要同时运行两个服务器,请使用不同的端口。