Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Webpack从嵌套依赖项导入不需要的模块_Javascript_Jquery_Reactjs_Webpack_Lodash - Fatal编程技术网

Javascript Webpack从嵌套依赖项导入不需要的模块

Javascript Webpack从嵌套依赖项导入不需要的模块,javascript,jquery,reactjs,webpack,lodash,Javascript,Jquery,Reactjs,Webpack,Lodash,我正在创建一个React应用程序,我的主要依赖项是React,React dom,Redux,Immutable和一些其他小型库。 问题是,当我使用webpack构建应用程序时,它会加载一些额外的模块,例如lodash和jQuery,因为它们是嵌套的依赖项,这会导致我的构建太大(使用webpackbundlezeanalyzerplugin检查)。 但是,例如,如果我只使用react dom中的render函数,为什么我需要额外加载完整的lodash模块? 是否可以强制webpack只加载嵌套依

我正在创建一个React应用程序,我的主要依赖项是
React
React dom
Redux
Immutable
和一些其他小型库。 问题是,当我使用
webpack
构建应用程序时,它会加载一些额外的模块,例如
lodash
jQuery
,因为它们是嵌套的依赖项,这会导致我的构建太大(使用
webpackbundlezeanalyzerplugin
检查)。 但是,例如,如果我只使用
react dom
中的
render
函数,为什么我需要额外加载完整的lodash模块? 是否可以强制webpack只加载嵌套依赖模块的必要部分而不是完整部分?
谢谢

听起来您使用的是webpack 1,它没有包含您想要的功能:摇树

Webpack 2有树震动,这是实时代码导入。这意味着它只是捆绑了您在应用程序中实际使用的代码和库片段,这比消除纯死代码要好得多(先捆绑,然后删除未使用的代码)

<>我在过去遇到这个问题,考虑迁移到WebPACK 2,你会得到这个很棒的特性。我让我的包从30Mb变为1Mb。通过缩小,其中一个应用程序的容量降到了800k

如果你不想使用Webpack2,不管出于什么原因,还有其他选择,比如。我已经成功地使用了这两种方法。Rollup的配置简单得多,但Webpack2仍然是我的最爱,因为它在监视资产时的增量构建比Rollup的watcher更高效(更快)。生成的两个捆绑包与rollup和webpack 2的大小大致相同

有用链接: