42. 什么是tree-shaking?

Tree-shaking 是一个用于优化 JavaScript 应用程序的技术,它可以在打包过程中去除无用的代码,从而减小最终打包后的文件大小。

Tree-shaking 的基本原理是通过静态分析的方式识别和删除不被使用的代码。在 JavaScript 应用程序中,往往会引入许多库和模块,但是并不是所有的代码都会被使用。Tree-shaking 可以自动地分析和删除这些无用的代码,从而减小打包后的文件大小。

在实际开发中,Tree-shaking 技术通常是通过使用 ES6 模块系统来实现的。在 ES6 模块系统中,每个模块都被视为一个独立的作用域,它的导出和导入关系是静态的,这使得编译器可以轻松地分析和优化模块之间的依赖关系。

为了让 Tree-shaking 技术能够生效,需要满足以下几个条件:

  1. 代码必须使用 ES6 模块系统。

  2. 代码必须是静态的,不能有动态的引用和执行代码。

  3. 代码必须使用纯函数或者纯表达式,不能有副作用。

在实际应用中,Tree-shaking 技术通常是和其他打包工具和技术一起使用,如 webpackRollupBabel 等等。在使用这些工具时,可以通过配置选项来开启或关闭 Tree-shaking 技术,并对代码进行更细粒度的优化。

什么是tree-shaking?相关推荐

  1. Webpack进阶(一) tree shaking与不同mode

    Tree Shaking 生产环境去除没有使用到的内容(开发环境没有删除,会影响调试) 只支持ESM规范(静态引入,编译时引入),不支持CJS(动态引入,执行时引入) // webpack.confi ...

  2. webpack学习(四) -- css tree shaking

    css tree shaking 我们和webpack(三)一样,用案例说话 安装css需要的两个loader,css-loader 和style-loader npm install css-loa ...

  3. demo10 关于JS Tree Shaking

    1.什么是 tree shaking 借助于 es6 (es2015) 模块系统 (import 和 export) 的静态解析,webpack 能够利用 Tree Shaking 进行按需加载,移除 ...

  4. Webpack 实现 Tree shaking 的前世今生

    作者 | 左琳       责编 | 欧阳姝黎 前言 如果看过 rollup 系列的这篇文章 - 无用代码去哪了?项目减重之 rollup 的 Tree-shaking,那你一定对 tree-shak ...

  5. webpack构建中tree shaking、scope Hoisting(面试题)

    一.tree shaking (摇树优化) tree shaking概念: 1个模块可能有多个方法,只要其中某个方法使用了,整个文件会被打到bundle中 tree shaking 只将用到的方法打到 ...

  6. webpack高级应用篇(九):tree shaking(usedExports) 与 sideEffects

    目录 tree shaking(usedExports) tree shaking 前 tree shaking 后 sideEffects(副作用) 解释 tree shaking 和 `sideE ...

  7. Tree Shaking和sideEffects配置

    需要将 mode 配置设置成 development,以确定 bundle 不会被压缩: const path = require('path');module.exports = {entry: ' ...

  8. 【tree shaking】Tree-shaking之副作用

    前言 Tree-shaking,顾名思义"摇树".webpack会在生产环境打包时"摇"掉无用的,死的代码,也就是dead code. 由于Tree-shaki ...

  9. 配置Tree Shaking来减少JavaScript的打包体积

    译者按: 用Tree Shaking技术来减少JavaScript的Payload大小 原文: Reduce JavaScript Payloads with Tree Shaking 译者: Fun ...

  10. Angular 应用里的摇树优化 - tree shaking

    Tree Shakeable Providers and Services in Angular Angular 最近推出了一项新功能,Tree Shakeable Providers. Tree S ...

最新文章

  1. 【洛谷P1508】吃吃吃
  2. 5.Redis 发布订阅
  3. lsb_release -a 查询系统版本
  4. transition过渡的趣玩
  5. Python使用UDP协议打造在线时间服务器
  6. java poi 导出excel 速度慢_java POI技术之导出数据优化(15万条数据1分多钟)
  7. string input must not be null解决办法
  8. FinTech领域的风险控制——风险篇
  9. excel两个表格数据对比_Excel表格中数据比对和查找的几种技巧
  10. python爬虫qq好友信息_qq好友空间说说爬虫
  11. 微擎支付返回商户单号_ThinkPHP6对接实现微信H5支付
  12. 编译错误:找不到工程或库
  13. 【Matlab编程】新手入门第五天
  14. Java面试题之Redis的大坑
  15. matlab曲线拟合 函数 用法以及例子
  16. 15个Python入门小程序,同事准时下班“小技巧”被我发现了
  17. 爱因斯坦阶梯问题及寻找完全数问题
  18. Java学习查漏补缺及知识点整理
  19. android 实用干货 - 收藏集 - 掘金
  20. 检测打印机状态(VB实现)

热门文章

  1. android 炫飞 打印机,佳能炫飞打印机!郊游后将快乐打出来
  2. 人 男人 女人 与猪
  3. 有灵魂的工匠才能制作出有灵气的产品
  4. Cat1模组蓄“光”发展,广和通全场景助力光伏行业零碳发电
  5. 深航协国际物流商会2020年第三季度理事会顺利召开
  6. Java函数知识大全
  7. 基于.NET CORE微服务框架 -浅析如何使用surging
  8. 2022第十一届中国创新创业大赛全国总决赛在深圳举办
  9. python判断变量是否为数字_Python 判断字符串是否为数字
  10. zzulioj1103: 平均学分绩点(函数专题)