CSS模块的服务器端呈现

时间:2017-02-14 08:12:50

标签: reactjs webpack serverside-rendering isomorphic-style-loader

我将使用 CSS模块导入样式,并使其与服务器端渲染一起使用。我尝试了以下方法,但每个方法都有自己的警告。 require('.style.scss')如果出现任何副作用,最好的方法是什么?

  1. 使用css-modules-require-hook

    优势:易于配置。您只需要在服务器代码的开头调用钩子。您无需修改​​组件。

    警告:它会修改require.extensions全局对象,已弃用

  2. 使用isomorphic-style-loader

    优势:不再需要require.extensions

    警告:使用反应Context的HOC包装组件,这是一个实验性 API,可能会在将来的React版本中中断。

  3. 使用webpack-isomorphic-tools

    优势:不依赖于require.extensionsContext(AFAIK)。

    警告:在webpack-isomorphic-tools实例中包装服务器。我们可以摆脱 webpack-assets.json 吗?

  4. 使用 Webpack 捆绑服务器:

    优势:不再有钩子或注射。

    警告:在开发过程中,每当代码更改时捆绑所有内容都非常麻烦,甚至会在大型捆绑.js文件中调试更难 。不确定 - 您可能需要将捆绑的.js传递给测试运行器。

  5. 免责声明

    • 下面的优点和注意事项只是我的两分钱,实际上我喜欢他们为解决问题而采取的所有图书馆,插件和方法,并非常感谢他们的努力。
    • 我不是母语为英语的人,如果我歪曲自己,请纠正我。

1 个答案:

答案 0 :(得分:0)

最后,我决定将require.extensions挂钩开发。可能它不是最好的方式,在控制台上显示警告消息,如校验和不匹配,但在开发模式下,我可以忽略它。