Backport of webpack improvements. Build highest quality sourcemaps when

requested, but drop minimzation completely for dev.

Drop console statements in production build.
This commit is contained in:
Dannon Baker
2023-04-06 12:45:12 -04:00
parent 95156cb32e
commit 04de938ba4
+25 -4
View File
@@ -7,6 +7,7 @@ const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
const DuplicatePackageCheckerPlugin = require("@cerner/duplicate-package-checker-webpack-plugin");
const { DumpMetaPlugin } = require("dumpmeta-webpack-plugin");
const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
const TerserPlugin = require("terser-webpack-plugin");
const scriptsBase = path.join(__dirname, "src");
const testsBase = path.join(__dirname, "tests");
@@ -32,6 +33,27 @@ module.exports = (env = {}, argv = {}) => {
// environment name based on -d, -p, webpack flag
const targetEnv = process.env.NODE_ENV == "production" || argv.mode == "production" ? "production" : "development";
let minimizations = {};
if (targetEnv == "production") {
minimizations = {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
compress: {
drop_console: true,
},
},
}),
new CssMinimizerPlugin(),
],
};
} else {
minimizations = {
minimize: false,
};
}
const buildconfig = {
mode: targetEnv,
entry: {
@@ -84,8 +106,7 @@ module.exports = (env = {}, argv = {}) => {
},
},
},
minimize: true,
minimizer: [`...`, new CssMinimizerPlugin()],
...minimizations,
},
module: {
rules: [
@@ -272,8 +293,8 @@ module.exports = (env = {}, argv = {}) => {
},
};
if (process.env.GXY_BUILD_SOURCEMAPS || buildconfig.mode == "development") {
buildconfig.devtool = "eval-cheap-source-map";
if (process.env.GXY_BUILD_SOURCEMAPS) {
buildconfig.devtool = "source-map";
}
return buildconfig;