为什么所有的lodash最终都出现在我的webpack构建中
Why is all of lodash ending up in my webpack build?
我已经检查了包含它的所有库,它们都通过完整路径包含函数,即:import find from 'lodash/find'
。
Redux是使用它的主要依赖项,我也检查了他们的代码,它通过其完整路径正确地导入了每个函数。
以下是我的webpack构建可视化的json输出:
https://www.dropbox.com/s/njjjtgtw19d52j6/Screenshot%202016-10-30%2006.27.44.png?dl=0
正如你所看到的,lodash占据了很大的比例,而它只使用了少数方法。使用webpack-bundle-size-analyzer
的lodash达到135kb(当然是预缩小和gzipped(,但它仍然比应该的大得多。
其他人经历过这种情况吗?我觉得这有点多余。
更新:我发现一个包使用点语法导入lodash函数:import find from 'lodash.find'
。也许是这样。点语法和全路径语法之间有什么区别?
使用babel插件lodash将所有导入的lodash方法(如import { map } from 'lodash';
(转换为对import _map from 'lodash/map';
:的直接引用
{
"plugins": ["lodash"],
"presets": ["es2015"]
}
将它与lodash webpack插件结合起来,只包含您需要的功能:
plugins: [
new LodashModuleReplacementPlugin({ 'collections': true })
]
相关文章:
- 如何使用webpack将全局JS文件包含到我的React项目中
- 我的所有代码在使用Webpack编译时都会运行两次
- 如何修复 Webpack 在生产中篡改我的代码
- Webpack 无法正确解析我的别名
- 如何在带有ES6+Webpack的浏览器中使用我的Javascript库
- 如何打包到'生产'我的react网站与Webpack
- 为什么我的webpack配置的es6版本会给我一个错误,而es5版本却没有;t
- 为什么webpack试图解析每个文件在我的依赖's路径
- 为什么所有的lodash最终都出现在我的webpack构建中
- 如何在使用Webpack后在静态服务器上服务我的React web应用程序
- 我不能在Babel的webpack中使用rest操作符
- 我可以检测我的脚本是否正在被Webpack处理
- React WebPack -发送我的工作到在线服务器
- 如何使用Gulp或Webpack在我的nodejs/expressjs应用中使用ES6的特性
- 为什么我的Webpack Sass配置不起作用?
- Webpack-dev-server with redux和react阻塞了我的输入
- 尝试配置一个新的webpack+angular2项目,我'm获取错误TS2384:重载签名必须全部为环境签名或非
- 如何使用Webpack将jQuery UI包含到我的项目中
- Webpack开发服务器没有't热刷新我的客户端文件
- Webpack -p在我的ejs模板中禁用了es2015特性