Tre*_*oks 11 javascript webpack tree-shaking angular
我已经开始学习Angular 2并且遇到了这个术语"树摇晃",从初学者的角度来看,我还没有找到任何好的解释.
什么是树摇晃,我为什么需要它?我该如何使用它?
我看到你在这里有三个问题。 1.什么是摇树?2.有什么需要?3.而且,您如何使用它?
摇树是指消除死代码。这意味着在构建过程中,未使用的模块将不包含在捆绑软件中。
当我们
import和exportJavaScript中的模块一起使用时,大多数情况下会有未使用的代码在附近浮动。排除未使用的代码(也称为无效代码)称为树抖动。
利用摇树和消除死代码可以显着减少我们应用程序中的代码大小。我们通过网络发送的代码越少,应用程序的性能就越高。
摇树可以帮助我们减轻应用程序的负担。例如,如果我们只想“Hello World”在AngularJs 2中创建一个应用程序,那么它大约需要2.5MB,但是通过摇晃树,我们可以将大小减小到只有几百KB,或者也许几MB。
诸如webpack之类的工具将检测到无效代码并将其标记为“未使用的模块”,但不会删除该代码。Webpack依赖minifier来清除无效代码,其中之一是UglifyJS插件,它将从捆绑包中消除无效代码。
// modules.js
export function drive(props) {
return props.gas
}
export function fly(props) {
return props.miles
}
// main.js
import { drive } from modules;
/// some code
eventHandler = (event) => {
event.preventDefault()
drive({ gas: event.target.value })
}
/// some code
// fly() was never importent and won't be included in our bundle
Run Code Online (Sandbox Code Playgroud)
仅适用于
import和export。它不适用于CommonJSrequire语法。
同样适用于npm依赖项。最好的例子是lodash,import pick from 'lodash/pick'而您的捆绑软件将仅包含一个小模块,而不是整个lodash库。
| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |