Javascript Webpack从嵌套依赖项导入不需要的模块
我正在创建一个React应用程序,我的主要依赖项是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 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的大小大致相同 有用链接: