美文网首页
树摇tree-shaking概述

树摇tree-shaking概述

作者: 雷雨leiyu | 来源:发表于2021-05-15 17:05 被阅读0次

tree-shaking是一种消除死代码的性能优化理论,最初由rollup提出概念,目前支持的工具有:rollup,webpack2,closure complier等。

Tree shaking实现原理

  • Tree shaking的本质是消除无用的js代码,同时它也是DCE(Dead Code Elimination)的一种新的实现;
  • 与传统语言不通的,JavaScript加载由于受网络影响使得DCE具有更重要的意义,毕竟JS文件越小加载时间越短;
  • 具体实现DCE的并不是之前提到的三个工具,而是代码压缩优化工具uglify;
  • tree-shaking是基于es6的模块特性,这也是该工具之前不能流行的原因;

uglify特性

  • 函数消除:rollup与webpack2都可以实现,rollup相对效率更高;
  • 类消除:rollup与webpack2都无法实现;
  • rollup只处理函数和顶层的import/export变量,不能把没用到的类的方法消除掉;
  • uglify不能跨文件消除代码;

tree-shaking副作用

side effects是指那些当import的时候会执行一些动作,但是不一定会有任何export。比如ployfill,ployfills不对外暴露方法给主程序使用。

tree shaking 不能自动的识别哪些代码属于side effects,因此手动指定这些代码显得非常重要,如果不指定可能会出现一些意想不到的问题。

webpack+uglify案例

// package.json
{
  "devDependencies": [
    "uglify-webpack-plugin": "latest"
  ]
}
// webpack.config.js
module.exports = {
  plugins: [
    new UglifyJsPlugin()
  ]
}

相关文章

  • 树摇tree-shaking概述

    tree-shaking是一种消除死代码的性能优化理论,最初由rollup提出概念,目前支持的工具有:rollup...

  • Tree Shaking

    Tree Shaking 什么是Tree Shaking Tree-shaking (树摇)最早是由Rollup实...

  • webpack4 进阶篇3 ——JS tree-shaking

    本文长期更新,如有错误或者补充,欢迎留言 ~关注一下不迷路 ~ tree-shaking 摇树,通过摇晃树把枯叶摇...

  • Vue3和Vue2的区别

    vue3 新增的亮点 Performance 性能优化 Tree-shaking 支持摇树优化 Compositi...

  • Vue3中提到的Tree-shaking

    我们知道,Vue3中提到一个叫Tree-shaking的东西,其实也并不是一个新的东西,有人称之为"摇树优化",什...

  • tree-shaking不完全指南

    什么是tree-shaking以及Tree-shaking的前置依赖 关于什么是tree-shaking可以看这篇...

  • 2021-01-18 有趣的tree-shaking

    tree-shaking原理tree-shaking原理[https://juejin.cn/post/68449...

  • 3.24 tree-shaking

    js tree shaking还是css tree-shaking说的是js抖动,css抖动。具体也没有js树抖动...

  • 二叉查找树、红黑树原理

    概述 是不是看到各类树,心里有点慌?我也是,基础不牢,地动山摇啊,还是要回过头来看看各类树 二叉查找树 二叉查找树...

  • 树概述

    1.树的概念 2.什么是二叉树,满二叉树(节点的个数为:2的k次方-1个 k代表深度), 完全二叉树(除了最深...

网友评论

      本文标题:树摇tree-shaking概述

      本文链接:https://www.haomeiwen.com/subject/nfqkjltx.html