Utk*_*pta 5 javascript ecmascript-6 webpack es6-modules tree-shaking
我想知道,以下两个选项之一是在webpack中更好地进行Tree Shaking的正确方法:
import { someFeature } from 'someModule' // Option 1
import { isEmpty } from 'lodash' // Example 1
Run Code Online (Sandbox Code Playgroud)
或者,
import someFeature from 'someModule/someFeature' // Option 2
import isEmpty from 'lodash/isEmpty' // Example 2
Run Code Online (Sandbox Code Playgroud)
如果我理解您的问题,我认为您是在询问命名导出相对于默认导出的好处,以实现更好的树摇动或减小包大小。
为了更好地进行树摇动,建议使用命名导出而不是默认导出。根据这篇文章,
有时,您可能会想将具有许多属性的一个巨大对象导出为默认导出。这是一种反模式,会禁止适当的摇树:
因此,不要使用默认导出作为示例 1,而是使用命名导出作为示例 2。
实施例1
// This is default export. Do not use it for better tree shaking
// export.js
export default {
propertyA: "A",
propertyB: "B",
}
// import.js
import export from './exports';
Run Code Online (Sandbox Code Playgroud)
实施例2
// This is name export. Use it for better tree shaking
// export.js
export const propertyA = "A";
export const propertyB = "B";
// import.js
import { propertyA } from './exports';
Run Code Online (Sandbox Code Playgroud)
因此,在第一个示例中,它将同时导出两者propertyA,而propertyB在第二个示例中,它将仅导出propertyA,这将减少捆绑包的大小。
| 归档时间: |
|
| 查看次数: |
2342 次 |
| 最近记录: |