我正在为React应用设置我的webpack配置。但是我无法减小bundle.js的大小。在开发模式下,大小约为4MB,在生产模式下,大小约为1.5MB。这是我的配置:-
const path = require('path');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin')
var config = {
entry: './src/index.js',
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
use: ['babel-loader']
},
{
test: [/.css$/],
use:[
'style-loader',
'css-loader'
]
},
{
test: /\.(png|jpg|gif|jpeg|svg)$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'assets/images'
}
}
]
}
]
},
devtool: 'source-map',
resolve: {
extensions: ['*', '.js', '.jsx']
},
output: {
path: path.resolve(__dirname, 'dist'),
publicPath: '/',
filename: 'bundle.js'
},
devtool: 'source-map',
plugins: [
new webpack.HotModuleReplacementPlugin(),
new HtmlWebpackPlugin({
template: 'index.html'
})
],
devServer: {
contentBase: './dist',
hot: true,
port: 3000,
historyApiFallback: true
}
}
module.exports = (env, argv) => {
if (argv.mode === 'development') {
config.plugins = config.plugins.concat([
new BundleAnalyzerPlugin(),
])
}
if (argv.mode === 'production') {
config.plugins = config.plugins.concat([
new CleanWebpackPlugin(),
])
}
return config;
}
请帮助我减少bundle.js的大小。在此先感谢:)
运行dev的脚本 webpack-dev-server --config ./webpack.config.js --mode开发--open --hot
运行产品的脚本 webpack --config ./webpack.config.js --mode生产--open --hot
答案 0 :(得分:1)
尝试添加
new DefinePlugin({
'process.env.NODE_ENV': JSON.stringify("production"),
}),
在plugins
下。如果您进行设置,React专门消除了许多调试代码。其他库可能会也可能不会寻找它。
这可能会套用到新的mode
选项中,the docs自从我上次看过以来有所改变。
答案 1 :(得分:0)
开发中的捆绑包大小3.11MB看起来还不错。
为了进一步减少生产中的捆束尺寸: