12. Webpack知识体系

84 阅读1分钟

0 为什么要学Webpack

  • 理解前端“工程化”概念、工具、目标
  • 团队中总需要几个人熟悉Webpack
  • 高阶前端必经之路

1 什么是Webpack

1.1 前端项目的资源

  1. 手动管理这些资源

    • 依赖手工,比如有50个js文件...操作,过程繁琐
    • 当代码文件之间有依赖的时候,就得严格按依赖顺序书写
    • 开发与生产环境一致,难以接入TS或JS新特性
    • 比较难接入Less、Sass等工具
    • JS、图片、CSS资源管理模型不一致
  2. 工程化工具的出现,诞生了“前端工程”这一概念

    • Webpack本质上是一种前端资源编译、打包工具
    • 支持Babel、Esslint、TSS、Less
    • 模块化处理css、图片等资源文件

2 使用Webpack ———— 实例

  1. 安装
npm i -d webpack webpack-cli
  1. 编辑配置文件
const path = require('path')

module.exports = {
    entry: './src/index',
    mode: "development",
    devtool: false,
    output: {
        filename: '[name].js',
        path: path.join(__dirname, './dist')
    }
}

环境配置:

image.png

  1. 运行打包

在目录文件下运行

npx webpack

结果:

目标目录生成目标文件: image.png

核心流程

image.png

  • 多个文件资源合并成一个,减少http请求数
  • 支持模块化开发
  • 支持高级JS特性
  • 支持Typescript、CoffeeScript方言
  • 统一图片、CSS、字体等其它资源的处理模型
  • Etc...

webpack 流程类配置

image.png 至少用到entry和output两个字段

各webpack实例

1. css加载

image.png

使用了Loader: css-loader 和 style-loader

2. Bable的使用

高版本的代码 ->> 低版本代码

image.png

3. HTML的打包使用

image.png

自动打包生成html文件

webpack工具线

image.png

hmr(热部署)

tree-shaking

image.png

4 认识Loader:链式调用

image.png

常用Loader:

image.png

5 理解插件

webpack面试知识导图

image.png