星海

工程化与性能 · 单选题 · 第 56 题

前端与全栈开发面试 · 第 56 题

打包工具的 Tree Shaking(摇树优化)主要依赖什么?

  1. ACommonJS 运行时的动态 require 调用
  2. BES Module 静态的 import / export 结构
  3. C对代码进行 gzip 压缩以后的产物体积
  4. D把所有模块合并成一个文件后再混淆

答案

B B. ES Module 静态的 import / export 结构

解析

ESM 的导入导出在编译期就能确定,打包工具可以分析出哪些导出从未被使用,把它们删掉。CommonJS 的 require 可以写在条件里、模块名也可以动态拼接,很难静态分析。还要注意 package.json 里的 sideEffects 字段,有副作用的模块即使没被引用也不能删除。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。