Ich versuche, eine Umgebung für meine React-Anwendung mit Webpack und Babel einzurichten. Ich benutze JSX um Komponenten zu implementieren und ich möchte Live Reload nutzen.Updates in meiner React-Anwendung werden nicht berücksichtigt Webpack-Dev-Server
Hier ist meine package.json
Datei:
{
(...)
"scripts": {
"start": "webpack-dev-server --hot --inline"
},
"dependencies": {
"babel-loader": "^6.2.4",
"babel-preset-es2015": "^6.9.0",
"babel-preset-react": "^6.11.1",
"jsx-loader": "^0.13.2",
"react": "^15.1.0",
"react-dom": "^15.1.0",
"react-hot-loader": "^1.3.0",
"webpack": "^1.13.1",
"webpack-dev-server": "^1.14.1"
}
}
Hier ist meine Webpack Konfiguration:
var webpack = require('webpack');
var path = require('path');
var BUILD_DIR = path.resolve(__dirname, 'src/client/public');
var APP_DIR = path.resolve(__dirname, 'src/client/app');
var config = {
entry: [
'webpack-dev-server/client?http://0.0.0.0:8080',
'webpack/hot/only-dev-server',
APP_DIR + '/index.jsx'
],
output: {
path: BUILD_DIR,
filename: 'bundle.js'
},
module : {
loaders : [
{
test : /\.jsx?/,
include : APP_DIR,
loaders: ['react-hot', 'babel']
}
]
},
plugins: [
new webpack.HotModuleReplacementPlugin()
]
};
module.exports = config;
Nach npm run start
und mit dieser Konfiguration ausgeführt zu haben, sehe ich in meiner Konsole, die Updates in einer JSX-Datei werden erkannt, aber der Browser wird nicht aktualisiert. Wenn ich mir die Datei module.js
anschaue, werden meine Aktualisierungen nicht berücksichtigt.
Ausführen des Befehls webpack -d
, sie sind ...
dieses Repo Siehe: https://github.com/templth/react-webpack-hot-reload.
Zusätzliche Hinweise. sehe ich die folgenden Spuren in der JavaScript-Konsole des Browsers:
[HMR] Waiting for update signal from WDS...
Download the React DevTools for a better development experience: https://(...)/react-devtools
XHR finished loading: GET "http://localhost:8080/sockjs-node/info?t=1467375470671".AbstractXHRObject._start @ abstract-xhr.js:132(anonymous function) (...)
[WDS] Hot Module Replacement enabled.
[WDS] App updated. Recompiling...
[WDS] App hot update...
[HMR] Checking for updates on the server...
GET http://localhost:8080/src/client/0cf06dae430007853b6f.hot-update.json 404 (Not Found)hotDownloadManifest @ bootstrap (...)
[HMR] Cannot find update. Need to do a full reload!
nur-dev-server.js: 28 [HMR] (wahrscheinlich wegen Neustart des webpack-dev-Servers)
und in der Konsole, die den Webpack-Dev-Server gestartet
Hash: 85771179bfa8706bc10f
Version: webpack 1.13.1
Time: 275ms
Asset Size Chunks Chunk Names
bundle.js 991 kB 0 [emitted] main
0.8073da5d40a8dd413f96.hot-update.js 3.6 kB 0, 0 [emitted] main, main
8073da5d40a8dd413f96.hot-update.json 36 bytes [emitted]
chunk {0} bundle.js, 0.8073da5d40a8dd413f96.hot-update.js, 0.8073da5d40a8dd413f96.hot-update.js (main) 897 kB [rendered]
[76] ./src/client/app/index.jsx 3.58 kB {0} [built]
+ 255 hidden modules
webpack: bundle is now VALID.
Vielen Dank für Ihre Hilfe!
Vielen Dank für Ihre Antwort! Aber ich habe immer noch das gleiche Verhalten. Ich habe einige Spuren in meine Frage eingefügt ... –
Ich habe 404 Fehler im Browser auf Anfragen wie folgt: 'bootstrap 0cf06da ...: 25 GET http: // localhost: 8080/src/client/0cf06dae430007853b6f.hot-update.json' –
Ich denke, Sie müssen PublicPath auf http: // localhost: 8080/src/client/(wie Ihr Dev-Server) [Link] https://github.com/gaearon/react-hot-loader/blob/ Master/docs/Troubleshooting.md –