unpkg/server.js

49 lines
1.1 KiB
JavaScript
Raw Normal View History

2018-02-17 00:00:06 +00:00
const path = require("path");
const throng = require("throng");
2018-07-14 17:33:36 +00:00
const raven = require("raven");
2018-05-17 17:10:33 +00:00
2018-07-31 17:13:26 +00:00
const createServer = require("./modules/createServer");
const createDevServer = require("./modules/createDevServer");
const serverConfig = require("./modules/serverConfig");
2018-07-31 17:13:26 +00:00
require("./modules/clientRuntime");
2018-07-14 17:33:36 +00:00
if (process.env.SENTRY_DSN) {
2018-07-14 17:46:18 +00:00
raven
.config(process.env.SENTRY_DSN, {
release: process.env.HEROKU_RELEASE_VERSION
})
.install();
2018-07-14 17:33:36 +00:00
}
2017-08-19 06:10:04 +00:00
function startServer(id) {
2018-02-17 00:00:06 +00:00
const server =
process.env.NODE_ENV === "production"
? createServer(
path.resolve(__dirname, "public"),
2018-07-06 00:08:56 +00:00
path.resolve(__dirname, "stats.json")
2018-02-17 00:00:06 +00:00
)
: createDevServer(
path.resolve(__dirname, "public"),
require("./webpack.config"),
2018-07-31 17:13:26 +00:00
serverConfig.origin
2018-02-17 00:00:06 +00:00
);
2017-08-19 06:10:04 +00:00
2018-07-31 17:13:26 +00:00
server.listen(serverConfig.port, () => {
2018-05-17 17:10:33 +00:00
console.log(
"Server #%s listening on port %s, Ctrl+C to stop",
id,
2018-07-31 17:13:26 +00:00
serverConfig.port
2018-05-17 17:10:33 +00:00
);
2018-02-17 00:00:06 +00:00
});
2018-07-16 04:13:56 +00:00
server.timeout = 10000;
2017-08-19 06:10:04 +00:00
}
throng({
workers: process.env.WEB_CONCURRENCY || 1,
2017-08-13 00:23:40 +00:00
lifetime: Infinity,
2018-07-16 04:13:56 +00:00
grace: 11000,
2017-08-19 06:10:04 +00:00
start: startServer
2018-02-17 00:00:06 +00:00
});