Webpack配置文件

Webpack配置文件

webpack.config.js
简单介绍下Webpack配置文件中的 entry,output,loader,plugin的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = {
devtool: 'inline-source-map', // 控制是否生成以及如何生成 source map
devServer: { // 检测代码变化并自动重新编译并自动刷新浏览器
contentBase: path.resolve(__dirname, 'dist') // 设置静态资源的根目录
},
entry: { // 入口起点
app: './src/index.js',
print: './src/print.js'
},
output: { // 输出,只可指定一个输出配置
filename: '[name].bundle.js', // 根据入口起点名动态生成 bundle 名,可以使用像 "js/[name]/bundle.js" 这样的文件夹结构
path: path.resolve(__dirname, 'dist') // 输出文件所在的目录
},
module: { // 如何处理项目中不同类型的模块
rules: [ // 用于规定在不同模块被创建时如何处理模块的规则数组
{
test: /\.css$/, // 匹配特定文件的正则表达式或正则表达式数组,当遇到 import or require的扩展名为.css时候先处理下
use: [ // 应用于模块的 loader 使用列表
'style-loader',
'css-loader'
]
},
{ // 增加加载图片的规则
test: /\.(png|svg|jpg|gif)$/,
use: [
'file-loader'
]
},
{ // 增加加载字体的规则
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: [
'file-loader'
]
},

]
},
plugins: [ // 插件属性,是插件的实例数组
new HtmlWebpackPlugin({
title: 'webpack demo', // 生成 HTML 文档的标题
filename: 'index.html' // 写入 HTML 文件的文件名,默认 `index.html`
}),
new CleanWebpackPlugin(['dist']) // 第一个参数是要清理的目录的字符串数组
]
};

loader 和 plugin的区别
loader (加载器),重在“加载”二字,是用于预处理文件的,只用于在加载不同类型的文件时对不同类型的文件做相应的处理。
而 plugin (插件),顾名思义,是用来增加 webpack 的功能的,作用于整个 webpack 的构建过程。