美文网首页
TreeShaking是什么?

TreeShaking是什么?

作者: 杭州程序员小陈 | 来源:发表于2021-07-13 16:46 被阅读0次

Tree Shaking 值的就是当我引入一个模块的时候,我不引入这个模块的所有代码,我只引入我需要的代码,这就需要借助 webpack 里面自带的 Tree Shaking 这个功能来帮我们实现。

原理ESM

  • import 只能作为模块顶层的语句出现

  • import 的模块名只能是字符串常量

  • import binding 是 immutable 的

这就是区别于CommonJs,ESM 独有的静态分析特性。等等,那什么是静态分析呢,就是不执行代码。CommonJs 中的 require,只有执行以后才知道引用的是什么模块。

保证了依赖关系是确定的,和运行时的状态无关,可以进行可靠的静态分析。静态分析会在绘制依赖图时做 DCE,减少打包体积。ESM 也支持动态引入,类似于下面这种引入方式是不支持 Tree Shacking的。

<pre data-language="javascript" id="QE6w3" class="ne-codeblock" style="border: 1px solid #e8e8e8; border-radius: 2px; background: #f9f9f9; padding: 16px; font-size: 13px; color: #595959">if (false) {
  import('./app.js').then(() => {

    });
} else {

}</pre>

最新版的 antd 以及 vue 都对 Tree Shaking 提供了支持。

相关文章

  • TreeShaking是什么?

    Tree Shaking 值的就是当我引入一个模块的时候,我不引入这个模块的所有代码,我只引入我需要的代码,这就需...

  • treeShaking和sideEffects详解

    什么是treeShaking? treeShaking 是一个术语,通常用于描述移除 JavaScript 上下文...

  • ES6 相关 lesson 6 2021-5-11

    import 和 require的区别 treeshaking机制 ES Module 有tree shaking...

  • Webpack 之 treeShaking

    来源:easonyqgithub.com/easonyq/easonyq.github.io/blob/maste...

  • 12.TreeShaking

    1.treeShaking只支持静态import模块引入 commonJs动态模块require引入不支持 con...

  • treeshking

    用es6 静态引入 webpack.config.js package.json 剔除不需要treeShaking...

  • Vue 3.0中Treeshaking

    一、是什么 Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术,专业术语叫 Dead c...

  • webpack实际使用

    treeshaking tree shaking 本质上用于移除js 上下文中未引用代码 使用 ES 2015模块...

  • Vue 3.0中的Treeshaking特性?举例说明一下?

    1:目的:目的是Vue团队希望帮助开发者减小web应用体积2:什么是Treeshaking   TreeShaki...

  • webpack学习(二)高级用法

    webpack进阶 treeshaking 作用是在打包时只引入我们依赖的代码,只能作用于import这种静态引入...

网友评论

      本文标题:TreeShaking是什么?

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