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.
48 lines
1.0 KiB
JavaScript
48 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
const path = require("path");
|
|
|
|
const app = require("../src/server/app.js")();
|
|
|
|
if (process.env.NODE_ENV === "development") {
|
|
const budo = require("budo");
|
|
|
|
function projectPath(targetPath) {
|
|
return path.resolve(__dirname, "..", targetPath);
|
|
}
|
|
|
|
budo(projectPath("src/client/index.jsx"), {
|
|
watchGlob: projectPath("public/css/*.css"),
|
|
live: "**/*.css",
|
|
stream: process.stdout,
|
|
port: 8000,
|
|
/* NOTE: If the below is not set to match watchGlob, then livereloads will silently fail */
|
|
dir: projectPath("public"),
|
|
serve: "js/bundle.js",
|
|
debug: true,
|
|
browserify: {
|
|
extensions: [".jsx"],
|
|
plugin: [
|
|
"browserify-hmr"
|
|
],
|
|
transform: [
|
|
["babelify", {
|
|
presets: ["@babel/preset-env", "@babel/preset-react"],
|
|
plugins: ["react-hot-loader/babel"]
|
|
}]
|
|
]
|
|
},
|
|
middleware: function (req, res, next) {
|
|
app.handle(req, res, (err) => {
|
|
if (err != null && err instanceof Error) {
|
|
res.send("<pre>" + err.stack + "</pre>");
|
|
} else {
|
|
next(err);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
} else {
|
|
app.listen(3000);
|
|
}
|