为什么要用插件?
loader 和plugin的区别
loader
loader:主要用于对模块源码的转换,因为webpack本身只支持js处理,loader描述了webpack如何处理非javascript模块,并且在build中引入这些依赖。loader可以将文件从不同css预处理转换为css,将ts转换为JavaScript,或者将内联图像转换为data URL。比如说:sass-loader、css-Loader,style-Loader、file-loader等。loader本质就是一个间件管道。
plugin
plugin作用在于解决loader无法实现的其他事,从打包优化和压缩,到重新定义环境变量,功能强大到可以用来处理各种各样的任务。
常见的plugin
clean-webpack-plugin
清除资源文件
const {
CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
plugins: [
new CleanWebpackPlugin();
]
}
html-webpack-plugin
自动生成使用打包结果bundle.js的 HTML
const {
CleanWebpackPlugin } = require('clean-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');//可以多次调用,一个htmlWebpackPlugin 实例生成一个页面
module.exports = {
module: {
rules: [
{
test: /.js$/