forked from BrowserSync/browser-sync
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstatic-server.js
More file actions
73 lines (61 loc) · 1.7 KB
/
static-server.js
File metadata and controls
73 lines (61 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
"use strict";
var connect = require("connect");
var utils = require("./utils.js");
var snippetUtils = require("./../snippet").utils;
/**
* @param {BrowserSync} bs
* @param scripts
* @returns {*}
*/
module.exports = function createServer (bs, scripts) {
var options = bs.options;
var server = options.get("server");
var middleware = options.get("middleware");
var index = server.get("index") || "index.html";
var basedir = server.get("baseDir");
var extensions = server.get("extensions") || ["html", "htm"];
var app = connect();
/**
* Handle Old IE
*/
app.use(utils.handleOldIE);
/**
* Server the Client-side JS from both version and static paths
*/
app.use(options.getIn(["scriptPaths", "versioned"]), scripts)
.use(options.getIn(["scriptPaths", "path"]), scripts);
/**
* Add directory middleware
*/
if (server.get("directory")) {
utils.addDirectory(app, basedir);
}
/**
* Add snippet injection middleware
*/
app.use(
snippetUtils.getSnippetMiddleware(
options.get("snippet"),
options.get("snippetOptions"),
options.get("rewriteRules")
)
);
/**
* Add user-provided middlewares
*/
utils.addMiddleware(app, middleware);
/**
* Add Serve static middlewares
*/
utils.addBaseDir(app, basedir, index, extensions);
/**
* Add further Serve static middlewares for routes
*/
if (server.get("routes")) {
utils.addRoutes(app, server.get("routes").toJS());
}
/**
* Finally, return the server + App
*/
return utils.getServer(app, bs.options);
};