- Loader 是用于特定的模块类型进行转换。
- Plugin 可以用于执行更加广泛的任务,比如打包优化、资源管理、环境变量注入等。
CleanWebpackPlugin
作用:自动删除 dist 文件夹
安装:npm install clean-webpack-plugin -D
使用:
const {
CleanWebpackPlugin
} = require("clean-webpack-plugin")
module.exports = {
mode: "production",
entry: "./src/index.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "./build")
},
plugins: [
new CleanWebpackPlugin()
]
}
HtmlWebpackPlugin
安装:npm install html-webpack-plugin -D
使用:
const HtmlWebpackPlugin = require("html-webpack-plugin")
module.exports = {
mode: "production",
entry: "./src/index.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "./build")
}
plugins: [
new CleanWebpackPlugin(),
new HtmlWebpackPlugin()
]
}
执行 npm run build 之后,在 dist 目录中会有 index.html 文件,默认情况下是根据 ejs 的一个模板来生成的,在html-webpack-plugin的源码中,有一个default_index.ejs模块。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
</body>
</html>
自定义HTML模板
目的:创建一个属于自己的 index.html 模块。
const HtmlWebpackPlugin = require("html-webpack-plugin")
module.exports = {
mode: "production",
entry: "./src/index.js",
output: {
filename: "bundle.js",
path: path.resolve(__dirname, "./build")
},
plugins: [
new HtmlWebpackPlugin({
title: "哈哈哈",
template: "./src/test.html"
})
]
}