2016-11-08 6 views
-1

特定のブラウザ同期設定に問題があります。 testingとdev環境の両方でbrowser-syncを設定する必要があります。 Devは、テンプレートエンジンが迷惑メールを処理しているエクスプレスアプリ用で、プロキシ経由の接続が必要です。この設定は開発環境にとってうまく動作します。Browser-Syncでプロキシとサーバーの両方を設定すると、迷惑メール対策担当者のノーダート

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(); 
    } 
    }); 
}); 

問題は、それがモカチャイテスト環境に関する股関節用comletely異なる設定を持つブラウザ同期の別のインスタンスが必要であるルートにそれらの両方をフォルダ試験bower_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); 
}); 

私はそれをこのように設定した場合、ブラウザ同期2つの別々のinstansesを作成する場合でも、それは設定エラーを返します:プロキシとサーバーの両方を設定傾けます。 私は経由テストフォルダごとに異なるプロキシのようにこれを設定していた場合:ちょうど/テストを取得することはできませんが返されます

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

var testServer = proxy(['/test'], { 
    target: 'http://192.168.33.10', 
    port: 9999, 
    changeOrigin: true, 
    logLevel: 'debug' 
}); 

、それINITメインブラウザシンクに追加します。 両方とも動作させる方法はありますか?

答えて

0

解決しました。 を使用する必要はありません。 Browser-syncの1つのインスタンスで十分です。 これは作業構成です。

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(); 
    } 
    }); 
}); 
関連する問題