Использование browsersync в качестве веб-сервера разработчика в сочетании с приложением узла, обслуживающим только API, а не статические файлы.
В настоящее время я использую веб-сервер 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 на другом порту. Я хочу сделать то же самое с синхронизацией браузера (вместо использования livereload, поэтому я хочу избавиться от веб-сервера gulp), но не могу найти, как мне это настроить. Спасибо за руководство.
1 ответ
Хорошо, я нашел потенциальное решение (пожалуйста, прокомментируйте, если у вас есть улучшения)
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();
}
}
});
});