首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将动态webpack bundle.js名称注入服务器端呈现中的初始HTML组件?

问如何将动态webpack bundle.js名称注入服务器端呈现中的初始HTML组件?
EN

Stack Overflow用户
提问于 2017-10-05 14:49:41
回答 2查看 720关注 0票数 1

我正在转换一个纯粹的客户端呈现React Redux项目,以包括服务器端呈现。根据reduxJS手册(http://redux.js.org/docs/recipes/ServerRendering.html),一个典型的样板函数将初始组件HTML和初始状态注入要在客户端呈现的模板中,如下所示:

代码语言:javascript
复制
function renderFullPage(html, preloadedState) {
  return `
    <!doctype html>
    <html>
      <head>
        <title>Redux Universal Example</title>
      </head>
      <body>
        <div id="root">${html}</div>
        <script>
          // WARNING: See the following for security issues around embedding JSON in HTML:
          // http://redux.js.org/docs/recipes/ServerRendering.html#security-considerations
          window.__PRELOADED_STATE__ = ${JSON.stringify(preloadedState).replace(/</g, '\\u003c')}
        </script>
        <script src="/static/bundle.js"></script>
      </body>
    </html>
    `
}

因此,很明显,在函数的末尾,脚本标记包含了客户端应用程序的bundle.js文件。

下面是我的问题:如果我的webpack不简单地创建一个bundle.js,而是通过CommonsChunkPlugin输出一组具有动态文件命名的包文件,会怎样呢?

代码语言:javascript
复制
/bundle.32528d8bc783fafd2585.js  
/vendor.29ce638d0bba925f3e21.js  
/vendor2.da60e4a86c0ac5f28a03.js

我将如何“动态”地将这些文件注入上面的renderFullPage()函数以替换<script src="/static/bundle.js"></script>标记?

在这里,使用HtmlWebpackPlugin模板似乎不是一种选择。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-20 17:23:40

因此,毫不奇怪,将纯客户端React转换为SSR React并不像我想象的那么简单。有许多事情要考虑,很难找到一个教程,提供了服务器端呈现的一个良好的概述。然而,现在有一个在UDEMY,我真的可以推荐。到目前为止,对于SSR初学者来说,这是我发现的最全面的一个:

https://www.udemy.com/server-side-rendering-with-react-and-redux

票数 -1
EN

Stack Overflow用户

发布于 2017-10-05 14:57:29

您应该使用这个包:https://github.com/thejameskyle/react-loadable导入作为脚本到html --例如,最小的带有旋转器的脚本,并且当可加载的finish下载最后捆绑时,更改组件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46588618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档