Webpack
中文:
plugin | webpack 中文文档
在之前在npm run build
编译后就会生成一个dist
的文件夹,但是我们发现里面并没有index.html
的文件,还得我们手动创建一个index.html
的文件夹,利用plugins
就可以自动实现创建这个过程。
:::info
一般src
文件夹的代码称「源代码」,Webpack
打包src
后的代码为dist
「产出」的代码,可以直接运行在浏览器中。
:::
那什么是plugins
?
:::info
**plugin**
可以在**Webpack**
运行到某个时刻的时候,帮你做一些事情。
:::
html-webpack-plugin
HtmlWebpackPlugin | webpack 中文文档html-webpack-plugin
会在打包结束后会自动生成一个html
文件,并把打包生成的js
文件自动引入到这个html
文件中。
安装:
$ npm install html-webpack-plugin -D
配置:
// 引用node下的模块
const path = require("path")
// 引用插件
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
entry: "./src/index.js",
output: {
path: path.resolve(__dirname, "dist")
},
// loader(当你打包一个模块的时候就到这里查询相应的规则)
module: {
rules: [{
test: /\.jpg$/,
use: {
loader: "url-loader",
options: {
limit: 2048
}
}
}, {
test: /\.scss$/,
use: [
"style-loader",
{
loader: "css-loader",
options: {
importLoaders: 2,
modules: true
}
},
"sass-loader",
"postcss-loader"
]
}]
},
// 配置插件
plugins: [
new HtmlWebpackPlugin({
// 指定一个html文件为 HtmlWebpackPlugin 生成 html 文件的模板
template: "./src/index.html"
})]
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<div id="app">这是DIV元素</div>
</body>
</html>
在我们编译后生成的dist
文件夹中就会有index.html
的文件,且这个文件内自动使用了我们模版index
里面的内容也自动加载了打包后的JS
文件。
clean-webpack-plugin
这是一个非官方的plugin
。clean-webpack-plugin
会在打包前将dist
目录中的文件全部删除,这样可以防止存在冗余的文件。
安装:
$ npm install clean-webpack-plugin -D
配置:
// 引用插件
const HtmlWebpackPlugin = require("html-webpack-plugin")
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
module.exports = {
// ...
plugins: [
// 进行实例化
new HtmlWebpackPlugin({
template: "./src/index.html"
}),
new CleanWebpackPlugin()
]
}