You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
/*jshint unused:false */
|
|
|
|
/***************
|
|
|
|
This file allow to configure a proxy system plugged into BrowserSync
|
|
in order to redirect backend requests while still serving and watching
|
|
files from the web project
|
|
|
|
IMPORTANT: The proxy is disabled by default.
|
|
|
|
If you want to enable it, watch at the configuration options and finally
|
|
change the `module.exports` at the end of the file
|
|
|
|
***************/
|
|
|
|
'use strict';
|
|
|
|
var httpProxy = require('http-proxy');
|
|
var chalk = require('chalk');
|
|
|
|
/*
|
|
* Location of your backend server
|
|
*/
|
|
var proxyTarget = 'http://server/context/';
|
|
|
|
var proxy = httpProxy.createProxyServer({
|
|
target: proxyTarget
|
|
});
|
|
|
|
proxy.on('error', function(error, req, res) {
|
|
res.writeHead(500, {
|
|
'Content-Type': 'text/plain'
|
|
});
|
|
|
|
console.error(chalk.red('[Proxy]'), error);
|
|
});
|
|
|
|
/*
|
|
* The proxy middleware is an Express middleware added to BrowserSync to
|
|
* handle backend request and proxy them to your backend.
|
|
*/
|
|
function proxyMiddleware(req, res, next) {
|
|
/*
|
|
* This test is the switch of each request to determine if the request is
|
|
* for a static file to be handled by BrowserSync or a backend request to proxy.
|
|
*
|
|
* The existing test is a standard check on the files extensions but it may fail
|
|
* for your needs. If you can, you could also check on a context in the url which
|
|
* may be more reliable but can't be generic.
|
|
*/
|
|
if (/\.(html|css|js|png|jpg|jpeg|gif|ico|xml|rss|txt|eot|svg|ttf|woff|woff2|cur)(\?((r|v|rel|rev)=[\-\.\w]*)?)?$/.test(req.url)) {
|
|
next();
|
|
} else {
|
|
proxy.web(req, res);
|
|
}
|
|
}
|
|
|
|
/*
|
|
* This is where you activate or not your proxy.
|
|
*
|
|
* The first line activate if and the second one ignored it
|
|
*/
|
|
|
|
//module.exports = [proxyMiddleware];
|
|
module.exports = function() {
|
|
return [];
|
|
};
|