webpack是一个模块打包器,loader和plugin可以扩展很多开箱即用的功能
loader
Loader让webpack能够处理不同的文件。loader可以将所有类型的文件转换为webpack能够处理的有效模块,然后利用webpack的打包能力,对他们进行处理。本质上,webpack loader将所有类型的文件,转换为应用程序的依赖图可以直接引用的模块。
常用的loader
样式:style-loader、css-loader、less-loader、sass-loader等
文件:file-loader 、url-loader等
编译:babel-loader、vue-loader等
校验:eslint-loader
plugin
目的在于解决loader无法实现的其他事,从打包优化和压缩,到重新定义环境变量,功能强大到可以用来处理各种各样的任务。想要使用一个插件,你只需要 require()它,然后将它添加到plugins数组中。多数插件可以通过选项自定义。
常用plugin
UglifyJsPlugin:压缩和混淆代码
HotModuleReplacementPlugin:热更新