Plugin 是用来扩展 Webpack 功能的,通过在构建流程里注入钩子实现,它给 Webpack 带来了很大的灵活性。
const path = require("path");
const ExtractTextPlugin = require("extract-text-webpack-plugin");
module.exports =
{
// JavaScript 执行入口文件
entry: "./main.js",
output:
{
// 把所有依赖的模块合并输出到一个名为 “bundle.js” 文件中
filename: "bundle.js",
// 输出文件都放到 dist 目录下
path: path.resolve(__dirname, "./dist")
},
module:
{
rules:
[
{
test: /\.css$/,
loaders: ExtractTextPlugin.extract
({
// 读取 .css 文件需要的 loader
use: ["css-loader"]
})
}
]
},
plugins:
[
new ExtractTextPlugin
({
// 从 .js 文件提取出来的 .css 文件的名称
filename: `[name].css`
})
]
};
从以上代码可以看出,Webpack 是通过 plugins
属性来配置需要使用的插件列表的。plugins
属性是一个数组,里面的每一项都是插件的一个实例。
例如 ExtractTextPlugin
插件的作用就是提取出 JavaScript 代码里的 CSS 到一个单独的文件。我们可以通过插件的 filename
属性告诉插件输出的 CSS 文件名称,里面的 [name]
代表文件的名称,[contenthash:8]
代表根据文件内容算出的 8 位哈希值,还有更多的选项配置可以在 ExtractTextPlugin 的主页上查到。
网友评论