browser-sync
Version:
Live CSS Reload & Browser Syncing
60 lines (45 loc) • 1.43 kB
JavaScript
;
/**
* Browsersync server
* Three available modes: Snippet, Server or Proxy
*/
module.exports.plugin = function (bs, scripts) {
var debug = bs.debug;
var proxy = bs.options.get("proxy");
var type = bs.options.get("mode");
var bsServer = createServer(bs, scripts);
if (type === "server" || type === "snippet") {
debug("Static Server running ({magenta:%s}) ...", bs.options.get("scheme"));
}
if (proxy) {
debug("Proxy running, proxing: {magenta:%s}", proxy.get("target"));
}
if (bsServer) {
bsServer.server.listen(bs.options.get("port"));
}
debug("Running mode: %s", type.toUpperCase());
return {
server: bsServer.server,
app: bsServer.app
};
};
/**
* Launch the server for serving the client JS plus static files
* @param {BrowserSync} bs
* @param {String} clientScripts
* @returns {{staticServer: (http.Server), proxyServer: (http.Server)}}
*/
function createServer (bs, clientScripts) {
var proxy = bs.options.get("proxy");
var server = bs.options.get("server");
if (!proxy && !server) {
return require("./snippet-server")(bs, clientScripts);
}
if (proxy) {
return require("./proxy-server")(bs, clientScripts);
}
if (server) {
return require("./static-server")(bs, clientScripts);
}
}
module.exports.createServer = createServer;