Webpack树摇动无法提取未使用的功能

时间:2018-01-20 14:36:13

标签: webpack tree-shaking

当我使用webpackUglifyjsWebpackPlugin时,我会尝试缩小代码:

// this is test.js
export const ceil = Math.ceil

export const random = Math.random

// webpack entry
import { ceil } from './test'

export default ceil(3.3)

我得到了:

 // formated
 "use strict";
 n.d(t,"a",function(){return r});
 var r=Math.ceil;
 Math.random// still exist?

如果我缩小

// this is test.js
export const ceil = Math.ceil

export const random = 1 // or string 

我会正常的。

那么,为什么Math.random仍然存在? 树摇不动?

webpack:3.10.0
UglifyjsWebpackPlugin:1.1.6

谢谢!

1 个答案:

答案 0 :(得分:0)

您的问题尚不清楚,但是Math.random是javascript标准库的一部分,并且始终包含在每个浏览器中。因此,您无法摇晃它,但也不必担心它的大小:免费“获取” Math.random

换一种说法,摇树是一种减小捆束大小的工具。 Math.random的定义不是捆绑软件的开头,也不会影响捆绑软件的大小。

(注意:Math.ceil也是如此)