首先是常用的loader:

babel-loader,用于将ES6+代码转换为ES5,让代码兼容老版本浏览器。

css-loader和style-loader,处理CSS文件,css-loader解析CSS文件,style-loader将CSS注入到页面中。

file-loader和url-loader,处理图片、字体等静态资源,url-loader可以将小文件转换为base64内联。

sass-loader,处理Sass/SCSS文件,需要配合sass或node-sass使用。

html-loader,处理HTML文件,可以处理HTML中的图片等资源引用。

然后是常用的plugin:

HtmlWebpackPlugin,自动生成HTML文件,并自动注入打包后的JS和CSS文件。

MiniCssExtractPlugin,将CSS提取到单独的文件中,而不是内联到JS中。

CleanWebpackPlugin,在每次构建前清理输出目录。

DefinePlugin,定义全局常量,比如定义环境变量。

HotModuleReplacementPlugin,实现热更新功能。

在实际项目中,我们通常使用Create React App或Vue CLI等脚手架工具,它们已经配置好了常用的loader和plugin,我们只需要根据项目需求进行相应调整即可。