Webpack中loader和plugin的区别?
loader和plugin的区别?
1.webpack默认只能处理JS和JSON文件,loader可对不同类型的文件进行转换,比如css-loader
2.什么是plugins:扩展webpack功能的插件,可在构建过程中执行自定义的任务和操做,可处理更广泛的任务,在webpack配置中的plugins数组中进行配置,可进行如优化、资源管理、注入环境变量,Plugin可以监听Webpack构建过程的不同阶段(通过apply方法),并执行相应的任务。它们可以修改Webpack的内部配置,以及在特定的时间点执行自定义逻辑。常见的Webpack插件包括HtmlWebpackPlugin(用于生成HTML文件)、MiniCssExtractPlugin(用于提取CSS文件)、CleanWebpackPlugin(用于清理输出目录)等,因为他是有apply属性的JS对象,apply属性会被webpack compiler编译调用,并且compiler对象可以在整个编译生命周期访问,插件可以携带参数,参数必须在webpack中配置
class MyPlugin {
apply(compiler) {
// 在特定的钩子函数上注册自定义逻辑
compiler.hooks.someHook.tap('MyPlugin', () => {
// 执行自定义逻辑
});
}
}