私はこのことについて多くの読者をしてきましたが、githubで利用可能な多くの定型文がwebpack-dev-serverを使用してクライアントバンドル。しかし、サーバーがどのようにホット・モジュールがリロードされているのかわかりません。サーバー側でHMRを有効にするためにwebpackを設定する方法はありますか?さもなければ、私が変更したものはサーバによってレンダリングされず、クライアント上でのみリフレッシュされるようです。ホットモジュールリロードでサーバ側のレンダリングに反応する
module.exports = {
entry: "./js/client.js",
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015', 'stage-0'],
plugins: ['react-html-attrs', 'transform-class-properties', 'transform-decorators-legacy'],
}
}
]
},
output: {
path: __dirname + "/public/",
filename: "client.min.js"
}
};
server.js:
app.get('/', function(request, response) {
var html = ReactDOMServer.renderToString(React.createElement(Component));
response.send(html);
});
Component.js:
module.exports = React.createClass({
_handleClick: function() {
alert();
},
render: function() {
return (
<html>
<head>
<title>{this.props.title}</title>
<link rel="stylesheet" href="/style.css" />
</head>
<body>
<h1>{this.props.title}</h1>
<p>isn't server-side rendering remarkable?</p>
<button onClick={this._handleClick}>Click me</button>
<script dangerouslySetInnerHTML={{
__html: 'window.PROPS=' + JSON.stringify(this.props)
}} />
<script src="/client.min.js" />
</body>
</html>
);
}
})
とclient.js:
var props = window.PROPS;
ReactDOM.render(React.createElement(Component, props), document);
私のWebPACKの設定は次のようになります
私はwebpack-dev-server --content-base src --inline --hot
を使ってwebpackを実行します
はあなたのwebpack設定ファイルを共有していますので、私たちはあなたに応じて –
をお手伝いします。何か他のものを提供できるかどうか教えてください。 – user490895