webpack之Tree Shaking

Tree Shaking

Tree Shaking定义

  • 树抖动(Tree Shaking),是JavaScript上下文中常用于消除死代码的术语
  • 通俗:通过工具"摇"JS文件,将其中用不到的代码"摇"掉,提升运行性能

Tree Shaking原理

  • 通过 DCE(dead code elimination),消除无效代码
  • 依赖于ES2015模块语法的静态结构
    • es6 模块预编译,可做静态分析
    • cjs(commonJS)模块,动态导入

Dead Code 特征

  • 代码不会被执行,不可到达
  • 代码执行的结果不会被用到
  • 代码只会影响死变量(只写不读)

不同模式测试

  • 测试代码
// index.js
import {
    square } from './math'

const v = square(2) // 只读不写

// math.js
export function square(x) {
   
  return x * x;
}
1. development 模式
  • 无 Tree Shaking
    在这里插入图片描述
2. production 模式
  • Tree Shaking
    在这里插入图片描述

sideEffects

副作用使 Tree Shaking 失效

副作用: 一个函数会、或者可能会对函数外部变量产生影响的行为(日志,全局变量等)
结果:打包后,副作用代码保留,其他代码被删除

// index.js
import './menu'

// menu.js
function Menu() {
   
}

Menu.prototype.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值