初始化:
webpack.config.js
),合并配置项并生成最终配置。编译:
entry
开始,递归解析所有依赖模块,生成模块依赖图。构建模块:
优化:
生成:
输出:
output
目录)。+-------------------+
| 初始化 (Init) |
+-------------------+
|
v
+-------------------+
| 编译 (Compile) |
+-------------------+
|
v
+-------------------+
| 构建模块 (Build) |
+-------------------+
|
v
+-------------------+
| 优化 (Optimize) |
+-------------------+
|
v
+-------------------+
| 生成 (Emit) |
+-------------------+
|
v
+-------------------+
| 输出 (Output) |
+-------------------+
Entry(入口):
Output(输出):
Loaders:
Plugins:
Modules(模块):
entry
指定的文件开始递归找出所有依赖的模块。Chunks(代码块):
Bundle(打包文件):
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './src/index.js', // 入口文件
output: {
filename: 'bundle.js', // 输出文件名
path: path.resolve(__dirname, 'dist'), // 输出路径
},
module: {
rules: [
{
test: /\.js$/, // 匹配 .js 文件
exclude: /node_modules/, // 排除 node_modules 文件夹
use: {
loader: 'babel-loader', // 使用 babel-loader 处理 JavaScript 文件
options: {
presets: ['@babel/preset-env'] // Babel 配置
}
}
},
{
test: /\.css$/, // 匹配 .css 文件
use: ['style-loader', 'css-loader'] // 使用 style-loader 和 css-loader 处理 CSS 文件
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: './src/index.html', // 生成 HTML 文件
})
],
};
这个配置文件展示了 Webpack 的基本使用,包括入口、输出、加载器和插件的配置。在实际项目中,可以根据需求进一步配置和优化。