作用原理缺点 作用在打包的时候删除掉那些没有用的代码,所谓没有用的代码有三个特性 代码不可执行,不可到达执行结果不会被使用代码只会影响到死变量 原理利用了ES6的特点 只能作为模块顶层的语句出现import 的模块名只能是字符串常量import binding 是 immutable的 ES6模块依赖关系是确定的,和运行时的状态无关,可以进行可靠的静态分析,这就是tree-shaking的基础。 缺点 rollup只能处理函数和顶层的import/export变量,不能把没有用到的类的方法消除JavaScript动态语言的特性让静态分析比较困难