Switch to build-thing + budo-express
parent
6a78511d45
commit
f40ce08148
@ -0,0 +1,73 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
const budoExpress = require("budo-express");
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
budoExpress({
|
||||||
|
port: 8000,
|
||||||
|
debug: true,
|
||||||
|
expressApp: require("../src/app")(),
|
||||||
|
basePath: path.resolve(__dirname, ".."),
|
||||||
|
entryPath: "src/client/index.jsx",
|
||||||
|
publicPath: "public",
|
||||||
|
bundlePath: "js/bundle.js",
|
||||||
|
livereload: "**/*.{css,html}",
|
||||||
|
browserify: {
|
||||||
|
extensions: [".jsx"],
|
||||||
|
plugin: [
|
||||||
|
"browserify-hmr"
|
||||||
|
],
|
||||||
|
transform: [
|
||||||
|
["babelify", {
|
||||||
|
presets: ["@babel/preset-env", "@babel/preset-react"],
|
||||||
|
// plugins: ["react-hot-loader/babel"]
|
||||||
|
}]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// const app = require("../src/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,
|
||||||
|
// 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).on("listening", () => {
|
||||||
|
// console.log("Listening...");
|
||||||
|
// });
|
||||||
|
// }
|
@ -0,0 +1,13 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
const buildThing = require("build-thing");
|
||||||
|
|
||||||
|
let scssTask = buildThing.core.defineTask(() => {
|
||||||
|
return buildThing.core.pipeline([
|
||||||
|
buildThing.core.watch("src/scss/**/*.scss"),
|
||||||
|
buildThing.scssTransform(),
|
||||||
|
buildThing.core.saveToDirectory("public/css")
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
|
||||||
|
buildThing.runner(scssTask);
|
@ -1,132 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
const Promise = require("bluebird");
|
|
||||||
const path = require("path");
|
|
||||||
const gulp = require("gulp");
|
|
||||||
const webpackStream = require("webpack-stream");
|
|
||||||
const webpack = require("webpack");
|
|
||||||
const gulpCached = require("gulp-cached");
|
|
||||||
const gulpRename = require("gulp-rename");
|
|
||||||
const gulpNodemon = require("gulp-nodemon");
|
|
||||||
const gulpLivereload = require("gulp-livereload");
|
|
||||||
const gulpNamedLog = require("gulp-named-log");
|
|
||||||
|
|
||||||
const presetSCSS = require("@joepie91/gulp-preset-scss");
|
|
||||||
const partialPatchLivereload = require("@joepie91/gulp-partial-patch-livereload-logger");
|
|
||||||
|
|
||||||
const serverWaiter = require("./lib/build/wait-for-server")(3000);
|
|
||||||
|
|
||||||
const nodemonLogger = gulpNamedLog("nodemon");
|
|
||||||
const livereloadLogger = gulpNamedLog("livereload");
|
|
||||||
|
|
||||||
partialPatchLivereload(gulpLivereload);
|
|
||||||
|
|
||||||
let nodemon;
|
|
||||||
|
|
||||||
let sources = {
|
|
||||||
scss: ["./scss/**/*.scss"]
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The following resolves JacksonGariety/gulp-nodemon#33 */
|
|
||||||
process.once("SIGINT", function() {
|
|
||||||
process.exit(0);
|
|
||||||
});
|
|
||||||
|
|
||||||
function tryReload(target) {
|
|
||||||
if (!serverWaiter.isWaiting()) {
|
|
||||||
if (typeof target === "string") {
|
|
||||||
gulpLivereload.changed(target);
|
|
||||||
} else if (target.path != null) {
|
|
||||||
if (Array.isArray(target.path)) {
|
|
||||||
gulpLivereload.changed(target.path[0]);
|
|
||||||
} else {
|
|
||||||
gulpLivereload.changed(target.path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function queueFullReload() {
|
|
||||||
return Promise.try(() => {
|
|
||||||
nodemonLogger.log("Waiting for server to start listening...")
|
|
||||||
return serverWaiter.wait();
|
|
||||||
}).then(() => {
|
|
||||||
nodemonLogger.log("Server started!")
|
|
||||||
tryReload("*");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
gulp.task("scss", () => {
|
|
||||||
return gulp.src(sources.scss)
|
|
||||||
.pipe(presetSCSS({
|
|
||||||
basePath: __dirname
|
|
||||||
}))
|
|
||||||
.pipe(gulp.dest("./public/css"));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("webpack", () => {
|
|
||||||
return gulp.src("./frontend/index.js")
|
|
||||||
.pipe(webpackStream({
|
|
||||||
watch: true,
|
|
||||||
module: {
|
|
||||||
preLoaders: [{
|
|
||||||
test: /\.tag$/,
|
|
||||||
loader: "riotjs-loader",
|
|
||||||
exclude: /node_modules/,
|
|
||||||
query: {
|
|
||||||
type: "babel",
|
|
||||||
template: "pug",
|
|
||||||
parserOptions: {
|
|
||||||
js: {
|
|
||||||
presets: ["es2015-riot"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}],
|
|
||||||
loaders: [
|
|
||||||
{ test: /\.js$/, loader: "babel-loader" },
|
|
||||||
{ test: /\.json$/, loader: "json-loader" }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
plugins: [ new webpack.ProvidePlugin({riot: "riot"}) ],
|
|
||||||
resolveLoader: { root: path.join(__dirname, "node_modules") },
|
|
||||||
resolve: {
|
|
||||||
extensions: [
|
|
||||||
"",
|
|
||||||
".tag",
|
|
||||||
".web.js", ".js",
|
|
||||||
".web.json", ".json"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
debug: false
|
|
||||||
}))
|
|
||||||
.pipe(gulpRename("bundle.js"))
|
|
||||||
.pipe(gulp.dest("./public"));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("nodemon", ["scss"], () => {
|
|
||||||
nodemon = gulpNodemon({
|
|
||||||
script: "./app.js",
|
|
||||||
delay: 500,
|
|
||||||
ignore: ["node_modules", "public", "gulpfile.js"],
|
|
||||||
quiet: true
|
|
||||||
}).on("restart", (cause) => {
|
|
||||||
nodemonLogger.log("Restarting... caused by:", cause.join(" / "));
|
|
||||||
serverWaiter.reportRestart();
|
|
||||||
}).on("start", () => {
|
|
||||||
return queueFullReload()
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("watch-server", ["nodemon"], () => {
|
|
||||||
gulpLivereload.listen({
|
|
||||||
quiet: true
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.watch(sources.scss, ["scss"]);
|
|
||||||
|
|
||||||
gulp.watch("./public/**/*", tryReload);
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task("watch", ["watch-server", "webpack"]);
|
|
||||||
gulp.task("default", ["watch"]);
|
|
Loading…
Reference in New Issue