webpack has a rich plugin interface. Most of the features within webpack itself use this plugin interface. This makes webpack flexible.
Name | Description -------------------------------------------------------- | ----------- BannerPlugin
| Add a banner to the top of each generated chunk CommonsChunkPlugin
| Extract common modules shared between chunks CompressionWebpackPlugin
| Prepare compressed versions of assets to serve them with Content-Encoding ContextReplacementPlugin
| Override the inferred context of a require
expression CopyWebpackPlugin
| Copies individual files or entire directories to the build directory DefinePlugin
| Allow global constants configured at compile time DllPlugin
| Split bundles in order to drastically improve build time EnvironmentPlugin
| Shorthand for using the DefinePlugin
on process.env
keys EslintWebpackPlugin
| A ESLint plugin for webpack HotModuleReplacementPlugin
| Enable Hot Module Replacement (HMR) HtmlWebpackPlugin
| Easily create HTML files to serve your bundles IgnorePlugin
| Exclude certain modules from bundles LimitChunkCountPlugin
| Set min/max limits for chunking to better control chunking MinChunkSizePlugin
| Keep chunk size above the specified limit MiniCssExtractPlugin
| creates a CSS file per JS file which requires CSS NoEmitOnErrorsPlugin
| Skip the emitting phase when there are compilation errors NormalModuleReplacementPlugin
| Replace resource(s) that matches a regexp NpmInstallWebpackPlugin
| Auto-install missing dependencies during development ProgressPlugin
| Report compilation progress ProvidePlugin
| Use modules without having to use import/require SourceMapDevToolPlugin
| Enables a more fine grained control of source maps EvalSourceMapDevToolPlugin
| Enables a more fine grained control of eval source maps TerserPlugin
| Uses Terser to minify the JS in your project
For more third-party plugins, see the list from awesome-webpack.