shapez/gulp/js.js

127 lines
4.1 KiB
JavaScript
Raw Normal View History

2020-05-09 16:45:23 +02:00
const path = require("path");
2022-06-06 14:06:09 +02:00
const { BUILD_VARIANTS } = require("./build_variants");
2020-05-09 16:45:23 +02:00
function requireUncached(module) {
delete require.cache[require.resolve(module)];
return require(module);
}
2022-06-06 14:06:09 +02:00
/**
* PROVIDES (per <variant>)
*
* js.<variant>.dev.watch
* js.<variant>.dev
* js.<variant>.prod
*
*/
2020-05-09 16:45:23 +02:00
function gulptasksJS($, gulp, buildFolder, browserSync) {
//// DEV
2022-06-06 14:06:09 +02:00
for (const variant in BUILD_VARIANTS) {
const data = BUILD_VARIANTS[variant];
gulp.task("js." + variant + ".dev.watch", () => {
return gulp
.src("../src/js/main.js")
.pipe(
$.webpackStream(
requireUncached("./webpack.config.js")({
...data.buildArgs,
standalone: data.standalone,
watch: true,
})
)
)
2022-06-06 14:06:09 +02:00
.pipe(gulp.dest(buildFolder))
.pipe(browserSync.stream());
});
if (!data.standalone) {
// WEB
gulp.task("js." + variant + ".dev", () => {
return gulp
.src("../src/js/main.js")
.pipe(
$.webpackStream(
requireUncached("./webpack.config.js")({
...data.buildArgs,
})
)
)
.pipe(gulp.dest(buildFolder));
});
gulp.task("js." + variant + ".prod.transpiled", () => {
return gulp
.src("../src/js/main.js")
.pipe(
$.webpackStream(
requireUncached("./webpack.production.config.js")({
es6: false,
2022-06-06 14:29:25 +02:00
environment: data.environment,
2022-06-06 14:06:09 +02:00
...data.buildArgs,
})
)
)
.pipe($.rename("bundle-transpiled.js"))
.pipe(gulp.dest(buildFolder));
});
gulp.task("js." + variant + ".prod.es6", () => {
return gulp
.src("../src/js/main.js")
.pipe(
$.webpackStream(
requireUncached("./webpack.production.config.js")({
es6: true,
2022-06-06 14:29:25 +02:00
environment: data.environment,
2022-06-06 14:06:09 +02:00
...data.buildArgs,
})
)
)
.pipe(gulp.dest(buildFolder));
});
gulp.task(
"js." + variant + ".prod",
gulp.parallel("js." + variant + ".prod.transpiled", "js." + variant + ".prod.es6")
);
} else {
// STANDALONE
gulp.task("js." + variant + ".dev", () => {
return gulp
.src("../src/js/main.js")
.pipe(
$.webpackStream(
requireUncached("./webpack.config.js")({
...data.buildArgs,
standalone: true,
})
)
)
.pipe(gulp.dest(buildFolder));
});
gulp.task("js." + variant + ".prod", () => {
return gulp
.src("../src/js/main.js")
.pipe(
$.webpackStream(
requireUncached("./webpack.production.config.js")({
...data.buildArgs,
environment: "prod",
es6: true,
standalone: true,
})
)
)
.pipe(gulp.dest(buildFolder));
});
}
}
2020-05-09 16:45:23 +02:00
}
module.exports = {
gulptasksJS,
};