Proxy 在浏览器中同时设置代理和服务器Sync express gulp vagrant nodemon

Proxy 在浏览器中同时设置代理和服务器Sync express gulp vagrant nodemon,proxy,gulp,vagrant,browser-sync,nodemon,Proxy,Gulp,Vagrant,Browser Sync,Nodemon,特定浏览器同步配置存在问题。 我需要为测试和开发环境设置浏览器同步。 Dev是一个express应用程序,模板引擎在vagrant上工作,它需要通过代理连接。此设置在开发环境中运行良好 const browserSync = require('browser-sync').create(); const reload = browserSync.reload; var paths = { src : { devenv: ['app-dev/**/*.*', '!ap

特定浏览器同步配置存在问题。 我需要为测试和开发环境设置浏览器同步。 Dev是一个express应用程序,模板引擎在vagrant上工作,它需要通过代理连接。此设置在开发环境中运行良好

const browserSync = require('browser-sync').create();
const reload = browserSync.reload;

var paths = {
  src : {
    devenv:         ['app-dev/**/*.*', '!app-dev/bowercomponents/', 'app.js', 'public/**/*.*'],
    testenv:         'test/spec/**/*.*'
  },
};

gulp.task('browser-sync', ['nodemon'], function() {
  browserSync.init(null, {
    proxy: {
      target: 'http://192.168.33.10:3333', 
      ws: true,
    },
  });
});

gulp.task('serve', ['browser-sync'], function () {
  gulp.watch(paths.src.devenv, reload);
});

gulp.task('nodemon', function (cb) {
  var called = false;
  return nodemon({script: 'app.js'}).on('start', function () {
    if (!called) {
      called = true;
      cb();
    }
  });
});
问题是,需要另一个浏览器同步实例,该实例针对摩卡柴测试环境,具有完全不同的设置,该实例引用根目录中的testbower\u components文件夹。类似于此:

gulp.task('serve:test', () => {
  browserSync.get('Test Server').init({
    notify: false,
    port: 9999,
    ui: false,
    server: {
      baseDir: 'test',
      routes: {
        '/bower_components': 'bower_components'
      }
    }
  });
  gulp.watch(paths.src.testenv, reload);
});
如果我这样设置,即使创建两个单独的浏览器同步实例,也会返回一个配置错误:无法同时设置代理和服务器。 如果我通过以下方式为测试文件夹设置不同的代理:

var proxy = require('http-proxy-middleware');

var testServer = proxy(['/test'], {
  target: 'http://192.168.33.10',
  port: 9999,
  changeOrigin: true,
  logLevel: 'debug'
});
并将其添加到主浏览器sync init中,它只返回/无法获取测试。 有没有办法让他们俩都工作

解决了它。 无需使用
browserSync.get
。一个浏览器同步实例就足够了。 这是工作配置:

gulp.task('serve:test', () => {
  browserSync.init({
    notify: false,
    port: 9999,
    ui: false,
    server: {
      baseDir: 'test',
      routes: {
        '/bower_components': 'bower_components'
      }
    }
  });

  gulp.watch(paths.dist.testscripts).on('change', reload);
});

gulp.task('browser-sync', ['nodemon'], function() {
  browserSync.init(null, {
    proxy: {
      target: 'http://192.168.33.10:3333', //VM's ip and port
      ws: true,
    },
  });
});

gulp.task('serve', ['browser-sync'], function () {
  gulp.watch(paths.src.devenv, reload);
});


gulp.task('nodemon', function (cb) {
  var called = false;
  return nodemon({script: 'app.js'}).on('start', function () {
    if (!called) {
      called = true;
      cb();
    }
  });
});