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.
openNG/bin/server.js

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);
}