I’m working on this react app and when I build the projects the bundle.js
file is 10mb so after the deployment it takes time to load the content.
Here’s the code: https://github.com/sef-global/scholarx-frontend
Here’s my webpack config file:
// eslint-disable-next-line @typescript-eslint/no-var-requires const path = require('path'); // eslint-disable-next-line @typescript-eslint/no-var-requires const webpack = require('webpack'); // eslint-disable-next-line @typescript-eslint/no-var-requires const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { entry: './src/index.tsx', mode: 'development', module: { rules: [ { test: /.(js|jsx|ts|tsx)$/, exclude: /(node_modules|bower_components)/, loader: 'babel-loader', options: { presets: ['@babel/env'] }, }, { test: /.css$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader', options: { modules: true } }, ], }, { test: /.less$/, use: [ { loader: 'style-loader', }, { loader: 'css-loader', }, { loader: 'less-loader', options: { lessOptions: { javascriptEnabled: true }, }, }, ], }, { test: /.(png|jpe?g|gif)$/i, use: [{ loader: 'file-loader' }], }, ], }, resolve: { extensions: ['*', '.js', '.jsx', '.ts', '.tsx'] }, output: { path: path.resolve(__dirname, 'dist/'), publicPath: '/dist/', filename: 'bundle.js', }, devServer: { contentBase: path.join(__dirname, 'public/'), port: 3000, historyApiFallback: true, open: true, hotOnly: true, }, plugins: [ new webpack.HotModuleReplacementPlugin(), new HtmlWebpackPlugin({ template: 'public/index.html', favicon: 'public/favicon.png', }), ], };
Advertisement
Answer
I assume for production build you using your “build” command from packages.json
which states:
"build": "webpack",
That will trigger webpack
“building” of course, but in your webpack config the mode
is set to development
– so it will build in development mode.
What you want to do is this:
"build": "webpack --mode production",
--mode
argument will override what you have in webpack.config.