我使用webpack
捆绑了我的SSR回购(像lib这样的做出反应)。它有2个路由文件,1个用于服务器,1个用于客户端,完全相同但是在客户端使用require.ensure进行分块。
其中一条路线如下:
<Route path="/home" getComponent={(props, cb) => {
require.ensure([], require => cb(null,
require('../views/containers/Home').default), 'home');
}}/>
意思是,当浏览器解析.html
并在浏览器上下载bundle.js
时,webpack将然后插入该分块路由的组件&#39} .js
脚本标记为html,然后将下载。但是这样做有点慢,因为只有在下载.js
后才会下载该路由bundle.js
...所以,我从服务器手动添加脚本标记以获取任何请求的块借助webpack-manifest-plugin
动态路由。但是,现在,对于每个请求的路由,我在.html
文件中为该分块组件添加了双重脚本标记。一个是由于手动添加服务器而另一个是我们使用require.ensure
在webpack中创建块时。
事情很好但是2个脚本标签很好! :/
有没有办法可以避免它或者如何在客户端保持分块的同时处理它。
答案 0 :(得分:1)
如果您不想异步加载块,那么我将删除require.ensure
并只使用require
,以便代码包含在主包中。然后,除了包含主包之外,您不需要任何脚本标记。
否则,如果您想要分块以分隔不同页面的代码,那么请使用第二个入口点而不是自动生成的块。