Pluginy
Zatímco loadery slouží k zpracování/přeměně různých typů souborů (modulů), pluginy lze využít k provádění širší škály úkolů jako je optimalizace, asset management, a tak podobně.
Konfigurace pluginů
Pluginy používáme tak, že si je naimportujeme do našeho konfiguračního souboru, vytvoříme jejich instanci a tu vložíme do konfiguračního objektu do pole plugins (až na nějaké vyjímky, které se používají jinde). Většina pluginů je nastavitelná, takže si při vytváření jejich instancí můžeme plugin různě nastavit.
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
/* ... */
plugins: [
new MiniCssExtractPlugin(),
new HtmlWebpackPlugin({
template: "./index.html",
inject: true
})
]
}
Seznam pluginů
Zde jsem vytvořil seznam pluginů, které by se vám možná mohli hodit. Určitě se ale nejedná o kompletní list. Kdokoliv si totiž může vytvořit svůj vlastní plugin. Já jsem tu vypsal hlavně ty, které jsou zmíněné v dokumentaci.
- BannerPlugin - Přidá banner ke každému vygenerovanému chunku.
- BundleAnalyzerPlugin - Umožňuje nám analyzovat, jestli se nám ve výstupních souborech neduplikuje kód. (obsahuje interaktivní mapu, která se nám otevře v prohlížeči)
- CopyWebpackPlugin - Kopíruje samostatné soubory nebo celé složky do složky se sestavenou aplikací.
- CssMinimizerPlugin - Zminifikuje CSS soubory.
- DefinePlugin - Umožňuje definovat globální konstanty, které budou v našem kódu k dispozici.
- EnvironmentPlugin - Zkratka pro používání DefinePluginu s process.env proměnnými.
- EslintWebpackPlugin - ESLint Webpack plugin.
- HotModuleReplacementPlugin - Zapíná Hot Module Replacement.
- HtmlWebpackPlugin - Vytváří HTML soubory.
- MiniCssExtractPlugin - Vytváří CSS soubory.
- NpmInstallWebpackPlugin - Automaticky instaluje a ukládá dependencies, které nám při vývoji chybějí.
- ProgressPlugin - Umožňuje nám přizpůsobit si, jak je hlášen pokrok při kompilaci.
- ProvidePlugin - Umožňuje nám používat moduly bez jejich importování. Může se to hodit pro nějaké starší knihovny.
- PurgecssPlugin - Odstraní nepoužité CSS styly.
- TerserPlugin - Umožňuje minifikovat JavaScript. (Webpack 5 jej má již v sobě)