0

我目前正在使用具有以下配置的 gulp 网络服务器。

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 webserver),但找不到如何配置它。感谢您提供一些指导。

4

1 回答 1

2

好的,我找到了一个潜在的解决方案(如果您有改进,请发表评论)

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 回答