に反応:webpack --config build/webpack/prod.js
を実行した後Webpack2ホットモジュールはユニバーサルアプリのWebPACKのコンフィグが通常のように設定オブジェクトの配列であるアプリケーション
module.exports = [
{
name: 'client',
entry: {
app: [...require("./loaders").hotLoaders, "./src/frontend/client"],
libs: [
'react', 'react-dom'
]
},
output: {
path: path.join(__dirname, "../../www"),
filename: "js/[name].bundle.js"
},
...
},
{
name: 'server',
target: 'node',
entry: {
server: ["./src/universal/server"],
express: ["./src/universal/express"]
},
output: {
path: path.join(__dirname, "../../www"),
filename: "js/[name].bundle.js"
}
...
}];
、私はちょうど、生産上の次の操作を行うことができますnode www/express.bundle.js
のようなserver.expressチャンクの出力を実行します。
// src/universal/express.tsx
import SERVER from "./server"
const express = require("express");
const app = express();
app.use(express.static('www'));
app.use(require("morgan")('combined'));
app.use(SERVER);
app.listen(3000);
そして私はnode hot.js
ことができると私はHMR素敵な作業を取得発展のため。
// hot.js
const app = require("express")();
const compiler = require('webpack')(require('./build/webpack/prod.js'));
app.use(require('webpack-dev-middleware')(compiler);
app.use(require('webpack-hot-middleware')(compiler.compilers.find(compiler => compiler.name === 'client')));
app.use(require("morgan")('combined'));
app.use(require("./www/server.bundle").default);
app.listen(3000);
HMRはこのように非常に高速です。しかし、ファイルの編集を開始するとすぐに、反応は私に約React attempted to reuse markup
という警告を表示します。コードが変更されると、hmrはその魔法を行いますが、サーバはハードリフレッシュでも古いマークアップを送信し続けます。let SERVER = require("./www/server.bundle").default;
のようなバンドルファイルが必要なのは難しいかもしれませんが、webpack-dev-serverがこれを処理するかもしれません。 webpack設定の?
私はhot.jsもチャンクと考えていましたが、require('webpack')
を呼び出すrequire('./build/webpack/prod.js')
を呼び出し、webpackを怒らせて何もコンパイルしません。
あなたはあなたのpackage.jsonとwebpackconfigを共有できますか?同じものを探しています –
https://github.com/cescoferraro/spotify @AnilGupta – CESCO