node.js - 使用 webpack 在 Node 服务器上渲染 React 组件

标签 node.js reactjs sass isomorphic-javascript

我有一个 react 组件。 <myFooter> 。这是一个简单的页脚。

import React from 'react';
import './my-footer.scss';

export default class myFooter extends React.Component {
  render() {
    return (
    <footer className="col-xs-12">
      hello !
    </footer>
    );
  }
}

我想从服务器端渲染它。在后端,我有一个 Express 服务器。为此我写了这个:

import myFooter from '../components/my-footer.jsx';

app.get('/footer', function(req, res) {
  var string1 = ReactDOMServer.renderToString(myFooter);
  res.send(string1);
});

现在的问题是服务器无法读取 sass 文件。对于客户端渲染,我使用 webpack。 Webpack 构建所有内容并提供捆绑文件。

但我不确定如果是服务器端会发生什么。如何使用 webpack 进行编译?如果可以的话,我是否需要为 Node 服务器上的每个请求编译我的应用程序?

最佳答案

您需要 2 个 webpack 构建:

1 构建客户端 1 搭建服务器。

构建服务器时,请在 webpack 配置中使用 css-loader/locals 而不是 css-loader

阅读本期以了解更多详细信息:https://github.com/webpack/css-loader/issues/59

关于node.js - 使用 webpack 在 Node 服务器上渲染 React 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34148061/

相关文章:

javascript - Socket.io 如何使函数 io() 匿名?

node.js - OUTLOOK REST API 使用 Node.js 拒绝事件

Java socket.io 客户端 portage

javascript - 我无法在 Material-UI 中编辑文本字段

reactjs - Babel 7 升级 : @babel/helper-module-imports

html - 高级 CSS 数据选择器——SASS 还是 RegEx?

node.js - 如何在我在命令行上设置的端口上永久启动 Node.js 应用程序?

javascript - Redux thunk : how to await completion of an async action

css - 将父属性中的值设置为变量,以便子项中的其他属性可以使用它

css - 从 SASS 列表生成关键帧