我需要帮助来了解如何为节点服务器和浏览器同步配置端口。
在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
});
});
在mac终端中,我运行gulp
。这会将浏览器打开到localhost:3006
。细
在另一个终端窗口中,我启动节点服务器nodemon dist/serevr.js
我无法让他们变得一样。服务器无法启动,因为某些东西已在端口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
}
});
});
答案 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启动服务器。 您不能两次绑定到一个端口。如果需要同时运行两个服务器,请使用不同的端口。