Gulp 浏览器与自定义URL同步

Gulp 浏览器与自定义URL同步,gulp,browser-sync,Gulp,Browser Sync,我正在为我的网站使用BrowserSync。下面的live将重新加载我的CSS更改,但它会在以下位置打开一个网页: 我的网站是通过Vagrant配置的,可以在mysite.com本地访问。如何使BrowserSync在此自定义URL上工作 当我的虚拟机使用端口80时,我尝试了以下方法 gulp.task('browser-sync', function() { var files = [ 'htdocs/themes/custom/my-theme/dist/*' ]; br

我正在为我的网站使用BrowserSync。下面的live将重新加载我的CSS更改,但它会在以下位置打开一个网页:

我的网站是通过Vagrant配置的,可以在mysite.com本地访问。如何使BrowserSync在此自定义URL上工作

当我的虚拟机使用端口80时,我尝试了以下方法

gulp.task('browser-sync', function() {
  var files = [
    'htdocs/themes/custom/my-theme/dist/*'
  ];
  browserSync.init(files,{
    open: 'external',
    host: 'mysite.com',
    proxy: 'mysite.com',
    port: 80
  });
});
但是,我得到一个错误:

events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:80
    at Object.exports._errnoException (util.js:874:11)
    at exports._exceptionWithHostPort (util.js:897:20)
    at Server._listen2 (net.js:1221:19)
    at listen (net.js:1270:10)
    at Server.listen (net.js:1366:5)
    at module.exports.plugin (/path-to-my-site/node_modules/browser-sync/lib/server/index.js:24:25)
    at Object.module.exports.startServer [as fn] (/path-to-my-site/node_modules/browser-sync/lib/async.js:236:52)
    at /path-to-my-site/node_modules/browser-sync/lib/browser-sync.js:149:14
    at iterate (/path-to-my-site/node_modules/browser-sync/node_modules/async-each-series/index.js:8:5)
    at /path-to-my-site/node_modules/browser-sync/node_modules/async-each-series/index.js:16:16
如果我使用默认端口3000,那么页面将加载,但我得到错误连接拒绝


错误连接被拒绝

您的第一次尝试是正确的,当然,这样您将获得browserSync为您的应用程序提供服务,这是默认设置

第二个没有任何错误,只是您试图分配给browserSync的地址已被vagrant使用

所以,如果你想在mysite.com上使用browserSync,你应该配置vagrant以获取其他内容

如果执行此操作,则脚本将变为:

gulp.task('browser-sync', function() {
  var files = [
    'htdocs/themes/custom/my-theme/dist/*'
  ];
  browserSync.init(files,{
    open: 'external',
    host: 'mysite.com',
    proxy: 'mylaravel.com',
    port: 80
  });
});

您正试图以非根用户身份启动节点。默认情况下,Linux只允许root用户绑定到1024或以下端口。

对于在Google上遇到此问题的任何人,就像我一样:“端口”选项指定BrowserSync要侦听的端口,而不是它将代理的服务器正在侦听的端口。这个问题中的设置的问题是,它试图分配BrowserSync来监听Vagrant已经监听的同一端口


如果删除“端口”选项,BrowserSync默认为端口3000,您将能够在mysite.com:3000上成功访问它。这大概就是我目前使用的设置。或者,如果您将Vagrant重新分配到另一个端口(例如8080),您应该能够将BrowserSync分配到端口80,然后直接访问mysite.com上的BrowserSync。

您是在没有端口的情况下加载mysite.com的吗?
gulp.task('browser-sync', function() {
  var files = [
    'htdocs/themes/custom/my-theme/dist/*'
  ];
  browserSync.init(files,{
    open: 'external',
    host: 'mysite.com',
    proxy: 'mylaravel.com',
    port: 80
  });
});