【发布时间】:2019-11-10 23:02:57
【问题描述】:
我想知道,以下两个选项中的哪一个是在 webpack 中更好地 Tree Shaking 的正确方法:
import { someFeature } from 'someModule' // Option 1
import { isEmpty } from 'lodash' // Example 1
或者,
import someFeature from 'someModule/someFeature' // Option 2
import isEmpty from 'lodash/isEmpty' // Example 2
【问题讨论】:
-
您阅读文档了吗? webpack.js.org/guides/tree-shaking
-
您提供的代码示例不可互换,所以我不明白这里的真正问题是什么?您是在问是否应该使用默认导出而不是命名?因为在这个例子中,这里在摇树方面没有区别
-
这完全取决于
someModule和someModule/someFeature的实现。请张贴。 -
@Bergi 如果该模块是第三方库,lodash 会怎样?
-
@UtkarshPramodGupta 那么这仍然取决于他们如何实现他们的导出 - 请发布它们(但减少到一个最小的例子)。具体到 lodash,it has its own problems 因为它还没有使用 ES6 导出,所以有各种解决方法(从子包导入,使用 'lodash-es',使用修复 lodash 的 babel 插件,...)。
标签: javascript webpack ecmascript-6 es6-modules tree-shaking