const { merge } = require("webpack-merge");
const common = require("./webpack.common.js");
const TerserPlugin = require("terser-webpack-plugin");

module.exports = merge(common, {
    externals: {
        jquery: "jQuery",
        vtexjs: "vtexjs",
    },
    mode: "production",
    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: /node_modules\/(?!(@agenciam3\/pkg)\/).*/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: [["@babel/preset-env"], "@babel/react"],
                        plugins: ["@babel/plugin-transform-async-to-generator"],
                        cacheDirectory: true,
                    },
                },
            },
        ],
    },
    optimization: {
        usedExports: true,
        minimize: true,
        minimizer: [
            new TerserPlugin({
                extractComments: true,
                terserOptions: {
                    keep_classnames: true,
                    keep_fnames: true,
                    compress: {
                        pure_funcs: [
                            "console.table",
                            "console.debug",
                            "console.log",
                        ],
                    },
                },
            }),
        ],
    },
});