我已经检查了包含它的所有库,它们都包含完整路径的函数,即:import find from 'lodash/find'
。
Redux是使用它的主要依赖项,我也检查了它们的代码,它正确地通过其完整路径导入每个函数。
这是我的webpack build的json输出可视化:
https://www.dropbox.com/s/njjjtgtw19d52j6/Screenshot%202016-10-30%2006.27.44.png?dl=0
正如你所看到的,lodash占据了很大的比例,而只使用了一些方法。使用webpack-bundle-size-analyzer
lodash可以达到135kb(当然是预先缩小和压缩),但它仍然比它应该大得多。
还有其他人经历过这个吗?我觉得它以某种方式减少了。
更新:我发现一个包使用点语法导入lodash函数:import find from 'lodash.find'
。也许就是这样。点语法和完整路径语法之间有什么区别?
答案 0 :(得分:1)
使用babel-plugin-lodash将所有lodash方法导入转换为import { map } from 'lodash';
,以直接引用import _map from 'lodash/map';
:
{
"plugins": ["lodash"],
"presets": ["es2015"]
}
将其与lodash-webpack-plugin结合使用,只包含您需要的功能:
plugins: [
new LodashModuleReplacementPlugin({ 'collections': true })
]