如何编码拆分单个模块,以便在Webpack中的多个入口点之间共享?

时间:2019-08-13 18:52:57

标签: reactjs webpack-4

我有一个非常大的,较旧的MVC应用程序,在该应用程序中,我们已开始将Webpack用于某些TS / JS。过去,我曾尝试实现代码拆分,但是生成的模块庞大且笨拙。整个事情非常混乱。由于与旧版浏览器的兼容性问题,我们最终不得不将其回滚。

我们正在努力在React中做更多的事情,并且我们希望避免在整个应用程序中复制React库,但是我们还没有准备好过渡到完整的SPA。相反,我们当前正在使用大量入口点文件(当前为44个)在路由上“拆分”应用程序。

是否可以仅将React和React-DOM模块提取到一个独立的模块中?我想我们仍然需要在使用它的地方将其导入,以免类型错误。

还是我们以传统的方式将React添加到页面上,并消除那些警告和错误?

TLDR:当使用多个入口点时,如何编码拆分反应本身?

1 个答案:

答案 0 :(得分:0)

这应该起作用:

https://webpack.js.org/guides/code-splitting/#prevent-duplication

sendBody(Endpoint, ExchangePattern, Object)

我从来没有使用过太多的入口点,而是将其添加到您的webpack配置中,它应该开箱即用地提取到一个名为vendor〜main(long hash).js的块中。该页面底部的是分析工具,您可以检查包中是否有剩余的重复项。

编辑添加:更好:

https://webpack.js.org/plugins/split-chunks-plugin/#split-chunks-example-3

 optimization: {
     splitChunks: {
       chunks: 'all'
    }
   }