SSR中请求的路由的双脚本标记

时间:2017-08-14 08:59:01

标签: reactjs webpack chunking isomorphic ssr

我使用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个脚本标签很好! :/

有没有办法可以避免它或者如何在客户端保持分块的同时处理它。

1 个答案:

答案 0 :(得分:1)

如果您不想异步加载块,那么我将删除require.ensure并只使用require,以便代码包含在主包中。然后,除了包含主包之外,您不需要任何脚本标记。

否则,如果您想要分块以分隔不同页面的代码,那么请使用第二个入口点而不是自动生成的块。