4

我的 SSR repo(inferno-react like lib) 使用webpack. 它有 2 个路由文件,1 个用于服务器,1 个用于客户端,完全相同,但在客户端使用 require.ensure 进行分块。其中一条路线如下所示:

<Route path="/home" getComponent={(props, cb) => {      
  require.ensure([], require => cb(null, 
  require('../views/containers/Home').default), 'home');
}}/>

意思是,当浏览器解析.htmlbundle.js在浏览器上下载时,webpack 会将分块路由的组件的脚本标签插入到 html 中,然后其下载。但这会减慢它的速度,因为该路由仅在下载后才被下载......所以,我在. 但是,现在,对于每个请求的路由,我在文件中为该分块组件添加了双脚本标签。一种是由于在服务器上手动添加,另一种是我们在 webpack 中使用..js.jsbundle.jswebpack-manifest-plugin.htmlrequire.ensure

一切正常,但很好 2 个脚本标签!:/

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

4

1 回答 1

1

如果您不想异步加载块,那么我会放弃require.ensure并简单地使用require,以便代码包含在您的主包中。那么除了主捆绑包包含之外,您不需要任何脚本标签。

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

于 2017-08-20T10:55:47.303 回答