0

現在、次の構成でgulp Webサーバーを使用しています。

gulp.task('webserver', ['nodejs'], function () {
    return gulp.src(config.client)
        .pipe(webserver({
            livereload: true,
            port: 8001,
            proxies: [
                {
                    source: '/api',
                    target: 'http://localhost:3007/api'
                }
            ],
            directoryListing: false,
            open: true
        }));
});

そのため、/api で始まる静的ファイルとプロキシ リクエストを別のポートの nodeJs アプリに提供します。Browser-sync でも同じことをしたいのですが (livereload を使用する代わりに、gulp Web サーバーを取り除きたいのです)、これを構成する方法がわかりません。ご指導ありがとうございました。

4

1 に答える 1

2

OK、解決策を見つけました (改善点があればコメントしてください)

var browserSync = require('browser-sync');
var httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer({});
gulp.task('bs', ['nodejs'], function () {
    browserSync({
        server: {
            baseDir: "./client"
        },

        middleware: function (req, res, next) {
        var url = req.url;


        if (url.substring(0,5)==="/api/") {
            proxy.web(req, res, { target: 'http://localhost:3007' });
        } else {
            next();
        }
    }
    });
});

于 2015-03-13T09:51:22.627 に答える