diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2021-08-16 16:26:01 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2021-08-16 16:26:01 +0200 |
| commit | bf563861320cf207bb2d788f50b327e4eb37016a (patch) | |
| tree | 7e775216592e1f935fd9a10a6cf59f84c789f7c9 /webpack.config.prod.js | |
| parent | 9ae202820b698796f93b929b3e30cd499de796a1 (diff) | |
showing a graph
Diffstat (limited to 'webpack.config.prod.js')
| -rw-r--r-- | webpack.config.prod.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/webpack.config.prod.js b/webpack.config.prod.js new file mode 100644 index 0000000..6ebd5f6 --- /dev/null +++ b/webpack.config.prod.js @@ -0,0 +1,70 @@ +require("dotenv").config(); + +const webpack = require("webpack"); +const path = require("path"); +const TerserPlugin = require("terser-webpack-plugin"); +// const CleanWebpackPlugin = require('clean-webpack-plugin') +// const Visualizer = require('webpack-visualizer-plugin'); + +module.exports = { + mode: "production", + entry: { + main: "./src/index.js", + }, + output: { + path: path.resolve(__dirname, "public/assets/js"), + filename: "bundle.js", + }, + plugins: [ + new webpack.DefinePlugin({ + "process.env.NODE_ENV": JSON.stringify("production"), + // 'process.env.S3_HOST': JSON.stringify(process.env.S3_HOST || ""), + // 'process.env.API_HOST': JSON.stringify(process.env.API_HOST || ""), + }), + new TerserPlugin(), + new webpack.optimize.AggressiveMergingPlugin(), + // new Visualizer({ + // filename: './statistics.html' + // }) + ], + optimization: { + minimize: true, + minimizer: [ + new TerserPlugin({ + terserOptions: { + compress: { + // drop_console: true, + }, + }, + }), + ], + }, + resolve: { + alias: { + // "react": "preact/compat", + // "react-dom/test-utils": "preact/test-utils", + // "react-dom": "preact/compat", + // 'vcat-header': path.resolve(__dirname, '../app/components/common/header.component.js'), + // 'vcat-auth-reducer': path.resolve(__dirname, '../app/reducers/auth.reducer.js'), + }, + }, + devtool: "cheap-module-source-map", + module: { + rules: [ + { + test: /\.css$/, + use: ["style-loader", "css-loader"], + }, + { + test: /\.js$/, + // include: path.resolve(__dirname, 'client'), + exclude: /(node_modules|bower_components|build)/, + loader: "babel-loader", + options: { + presets: ["@babel/preset-react"], + plugins: ["@babel/plugin-transform-runtime"], + }, + }, + ], + }, +}; |
