Close webpack compiler on prod build (#7779)

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
pull/7785/head
Paulus Schoutsen 2020-11-23 12:48:21 +01:00 committed by GitHub
parent e2fed24995
commit 39ff641be9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 45 additions and 61 deletions

View File

@ -47,7 +47,7 @@ const runDevServer = ({
); );
}); });
const handler = (done) => (err, stats) => { const doneHandler = (done) => (err, stats) => {
if (err) { if (err) {
log.error(err.stack || err); log.error(err.stack || err);
if (err.details) { if (err.details) {
@ -67,11 +67,20 @@ const handler = (done) => (err, stats) => {
} }
}; };
const prodBuild = (conf) =>
new Promise((resolve) => {
webpack(
conf,
// Resolve promise when done. Because we pass a callback, webpack closes itself
doneHandler(resolve)
);
});
gulp.task("webpack-watch-app", () => { gulp.task("webpack-watch-app", () => {
// we are not calling done, so this command will run forever // This command will run forever because we don't close compiler
webpack(createAppConfig({ isProdBuild: false, latestBuild: true })).watch( webpack(createAppConfig({ isProdBuild: false, latestBuild: true })).watch(
{ ignored: /build-translations/ }, { ignored: /build-translations/ },
handler() doneHandler()
); );
gulp.watch( gulp.watch(
path.join(paths.translations_src, "en.json"), path.join(paths.translations_src, "en.json"),
@ -79,15 +88,12 @@ gulp.task("webpack-watch-app", () => {
); );
}); });
gulp.task( gulp.task("webpack-prod-app", () =>
"webpack-prod-app", prodBuild(
() => bothBuilds(createAppConfig, {
new Promise((resolve) => isProdBuild: true,
webpack( })
bothBuilds(createAppConfig, { isProdBuild: true }), )
handler(resolve)
)
)
); );
gulp.task("webpack-dev-server-demo", () => { gulp.task("webpack-dev-server-demo", () => {
@ -98,17 +104,12 @@ gulp.task("webpack-dev-server-demo", () => {
}); });
}); });
gulp.task( gulp.task("webpack-prod-demo", () =>
"webpack-prod-demo", prodBuild(
() => bothBuilds(createDemoConfig, {
new Promise((resolve) => isProdBuild: true,
webpack( })
bothBuilds(createDemoConfig, { )
isProdBuild: true,
}),
handler(resolve)
)
)
); );
gulp.task("webpack-dev-server-cast", () => { gulp.task("webpack-dev-server-cast", () => {
@ -121,41 +122,30 @@ gulp.task("webpack-dev-server-cast", () => {
}); });
}); });
gulp.task( gulp.task("webpack-prod-cast", () =>
"webpack-prod-cast", prodBuild(
() => bothBuilds(createCastConfig, {
new Promise((resolve) => isProdBuild: true,
webpack( })
bothBuilds(createCastConfig, { )
isProdBuild: true,
}),
handler(resolve)
)
)
); );
gulp.task("webpack-watch-hassio", () => { gulp.task("webpack-watch-hassio", () => {
// we are not calling done, so this command will run forever // This command will run forever because we don't close compiler
webpack( webpack(
createHassioConfig({ createHassioConfig({
isProdBuild: false, isProdBuild: false,
latestBuild: true, latestBuild: true,
}) })
).watch({}, handler()); ).watch({}, doneHandler());
}); });
gulp.task( gulp.task("webpack-prod-hassio", () =>
"webpack-prod-hassio", prodBuild(
() => bothBuilds(createHassioConfig, {
new Promise((resolve) => isProdBuild: true,
webpack( })
bothBuilds(createHassioConfig, { )
isProdBuild: true,
}),
handler(resolve)
)
)
); );
gulp.task("webpack-dev-server-gallery", () => { gulp.task("webpack-dev-server-gallery", () => {
@ -167,17 +157,11 @@ gulp.task("webpack-dev-server-gallery", () => {
}); });
}); });
gulp.task( gulp.task("webpack-prod-gallery", () =>
"webpack-prod-gallery", prodBuild(
() => createGalleryConfig({
new Promise((resolve) => isProdBuild: true,
webpack( latestBuild: true,
createGalleryConfig({ })
isProdBuild: true, )
latestBuild: true,
}),
handler(resolve)
)
)
); );