前端工程化 词条目录
前端Wiki/词条/Webpack

Webpack

定义前端最经典的模块打包器:以依赖图为骨架,把一切资源编译打包成浏览器可用的产物

Webpack 的世界观:一切皆模块。从 entry(入口)出发,沿 import 递归构建依赖图,每个文件经对应的 loader(如 babel-loader 编译 JS、css-loader 解析 CSS)转换,最后按规则输出若干 bundle。plugin 在整个生命周期的钩子(hooks)上扩展能力:压缩、抽 CSS、生成 HTML、复制资源。

核心概念清单:entry(入口)、output(产物路径与命名)、loader(文件转换器,链式从后往前执行)、plugin(插件,范围更广的能力注入)、mode(dev/prod 决定默认优化)、resolve.alias(路径别名)。理解了「依赖图 + loader 转换 + plugin 钩子」就抓住了 webpack 骨架。

JavaScript
// webpack.config.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  mode: 'development',                      // 决定默认优化策略
  entry: './src/main.js',                   // 入口
  output: {
    filename: '[name].[contenthash:8].js', // 内容哈希 → 长效缓存
    path: path.resolve(__dirname, 'dist'),
  },
  module: {
    rules: [
      // loader:从后往前执行(先 css 后 style)
      { test: /\.css$/, use: ['style-loader', 'css-loader'] },
      { test: /\.js$/, exclude: /node_modules/,
        use: { loader: 'babel-loader' } },
    ],
  },
  plugins: [new HtmlWebpackPlugin({ template: 'index.html' })],
  resolve: { alias: { '@': path.resolve('src') } },
};
⚠ 常见误区
🔗 相关词条ViteBabel代码压缩与 Tree Shaking
← 返回来源章节webpack 核心概念