build: support nested directories for js bundling

This commit is contained in:
Oliver Booth 2024-02-27 14:49:29 +00:00
parent 8925f07f31
commit 8f09197de6
Signed by: oliverbooth
GPG Key ID: E60B570D1B7557B5
1 changed files with 12 additions and 5 deletions

View File

@ -1,4 +1,5 @@
const gulp = require("gulp");
const fs = require("fs");
const sass = require('gulp-sass')(require("sass"));
const cleanCSS = require("gulp-clean-css");
const rename = require("gulp-rename");
@ -26,12 +27,18 @@ function compileTS() {
.pipe(gulp.dest(`tmp/js`));
}
function bundleJS() {
return gulp.src(["tmp/js/*.js", "tmp/js/app/app.js", "tmp/js/admin/admin.js"])
.pipe(named())
.pipe(webpack({ mode: "production", output: { filename: "[name].min.js" } }))
function bundleJS(done) {
const tasks = fs.readdirSync("tmp/js", {withFileTypes: true})
.filter(dirent => dirent.isDirectory())
.map(d => bundleDir(d.name));
return gulp.parallel(...tasks)(done);
function bundleDir(directory) {
return () => gulp.src(`tmp/js/${directory}/${directory}.js`)
.pipe(webpack({mode: "production", output: {filename: `${directory}.min.js`}}))
.pipe(gulp.dest(`${destDir}/js`));
}
}
function copyJS() {
return gulp.src(`${srcDir}/ts/**/*.js`)