放肆青春的博客
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)

放肆青春

一个前端菜鸟的技术成长之路
首页
前端
算法
网络
面试
技术
后端
运维
杂项
数据库
工具
网址
电脑
个人
文章
  • 分类
  • 标签
  • 归档
github (opens new window)
gitee (opens new window)
  • 前端

    • 前端 概览
    • 前端汇总

    • front 博文

    • front 项目总结

    • front 高级

    • front tools

      • 打包,构建工具
      • webpack

        • webpack
        • webpack知识点
          • webpack 知识点
            • webpack Module
            • webpack Chunk
            • webpack Bundle
            • webpack4 分包
        • webpack hash哈希值
        • webpack loader
        • webpack 插件
        • webpack热更新原理
        • webpack原理
        • webpack版本
      • vite
      • rollup
      • grunt
      • yeoman
      • babel
      • gulp
      • lerna
  • vue

    • vue 概览
    • vue 汇总

    • vue 博文

    • vue 项目总结

    • vue 高级

  • html

    • html 概览
    • html 汇总

    • html 博文

  • css

    • css 概览
    • css 汇总

    • css 博文

    • sass

    • less

  • js

    • javascript 概览
    • JS 汇总

    • ES6

    • JS 博文

    • JS 工具

  • node

    • node 概览
    • node 汇总

    • node 框架

    • node 博文

  • react

    • react 概览
    • react 汇总

    • react 博文

    • react 高级

  • 微信小程序

    • 微信小程序 概览
    • 微信小程序总结
    • 微信小程序文章
    • 微信小程序 博文

    • 微信小程序 高级

  • 微信公众号

    • 微信公众号 概览
    • 微信公众号总结
    • 微信公众号文章
  • 多端开发

    • 多端开发
    • dsbridge 概览
    • jsbridge 概览
    • webview
    • uniapp

      • uniapp 概览
    • taro

      • taro 概览
    • flutter

      • flutter 概览
      • flutter 环境搭建
    • electron

      • electron 概览
  • front
放肆青春
2022-01-05

webpack知识点

# webpack 知识点

# webpack Module

Webpack 可以看做是模块打包机,我们编写的任何文件,对于 Webpack 来说,都是一个个模块。

所以 Webpack 的配置文件,有一个 module 字段,module 下有一个 rules 字段,rules 下有就是处理模块的规则,配置哪类的模块,交由哪类 loader 来处理。

# webpack Chunk

Chunk 是 Webpack 打包过程中,一堆 module 的集合。

我们知道 Webpack 的打包是从一个入口文件开始,也可以说是入口模块,入口模块引用这其他模块,模块再引用模块。Webpack 通过引用关系逐个打包模块,这些 module 就形成了一个 Chunk。

产生 Chunk 的三种途径:

  1. entry 入口

  2. 异步加载模块

  3. 代码分割(code spliting)

# webpack Bundle

Bundle 就是我们最终输出的一个或多个打包文件。确实,大多数情况下,一个 Chunk 会生产一个 Bundle。但有时候也不完全是一对一的关系,比如我们把 devtool 配置成'source-map',然后只有一个入口文件,也不配置代码分割:这样的配置,会产生一个 Chunk,但是会产生两个 bundle(多一个 map)

Chunk 和 Bundle 的区别:Chunk 是过程中的代码块,Bundle 是结果的代码块。

# webpack4 分包

  • 入口起点:使用 entry (opens new window) 配置手动地分离代码。

  • 防止重复:使用 SplitChunksPlugin (opens new window) 去重和分离 chunk。

从 webpack v4 开始,移除了 CommonsChunkPlugin,取而代之的是 SplitChunksPlugin

配置: optimization.splitChunks

  • 动态导入:通过模块中的内联函数调用来分离代码。

使用 webpack 拆包功能,从 bundle.js 中拆分出多个 chunk.js,实现 js 的按需加载,可以提高首屏加载速度

webpack4 取消了 CommonsChunkPlugin,使用 splitChunks 进行拆包

更新时间: 1/7/2022, 9:57:25 AM
webpack
webpack hash哈希值

← webpack webpack hash哈希值→

最近更新
01
前端权限管理
02-24
02
vue2指令
02-24
03
vue2 hook
02-24
更多文章>
Theme by Vdoing | Copyright © 2019-2022 放肆青春
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式