-
Loader:
- 作用: Loader 用于在模块加载时对文件进行转换。它是一个转换器,将文件从一种形式转换为另一种形式,例如,将 ES6 语法的 JavaScript 文件转换为能够在浏览器中运行的普通 JavaScript。
- 使用场景: Loader通常被配置在
module.rules
中,指定了哪些文件应该被哪些Loader处理。每个Loader执行一个特定的转换操作,它们串联在一起形成一个转换管道。
-
Plugin:
- 作用: Plugin 用于执行范围更广的任务,它可以监听Webpack构建过程中的事件,执行一些额外的任务。Plugins可以用于优化、压缩、拷贝文件等各种操作,而不仅仅是文件转换。
- 使用场景: Plugins通过在Webpack配置中的
plugins
数组中添加实例来配置。一个插件通常包含一个或多个钩子函数,这些函数在Webpack构建的不同阶段被调用。 - 例如,
HtmlWebpackPlugin
插件用于生成HTML文件,并将打包后的脚本自动添加到HTML中:
总体而言,Loader主要用于文件的转换,而Plugin则用于执行更广泛的构建任务,如文件生成、代码优化等。它们共同组成了Webpack强大的构建工具生态系统。