Hot reloading wydaje się już nie działać. Nie jestem pewien, co można zmienić w mojej konfiguracji, w rzeczywistości, o ile mogę powiedzieć, i dzienniki git pokazują, nic się nie zmieniło.Hot reload w aplikacji Electron/React
Bez względu na to, próbuję przeładować pliki CSS i Reakcje na pliki .jsx
.
Obecnie uruchamiam npm run watch
, a następnie npm run start
w innej karcie konsoli. Aplikacja zostanie uruchomiona, ale wszelkie zmiany w plikach nie zostaną ponownie załadowane. Moje package.json wygląda następująco:
{
...
"main": "main.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "cross-env ENVIRONMENT=DEV electron main.js",
"watch": "webpack-dev-server --hot --inline",
"build": "webpack"
},
"dependencies": {
"axios": "^0.15.2",
"babel": "^6.5.2",
"babel-loader": "^6.2.5",
"babel-plugin-transform-class-properties": "^6.19.0",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"babelify": "^7.2.0",
"cross-env": "^3.1.1",
"electron": "^1.3.4",
"electron-prebuilt": "^1.4.2",
"json-loader": "^0.5.4",
"react": "^15.3.2",
"react-dom": "^15.3.2",
"react-router": "^2.8.1",
"react-tap-event-plugin": "^1.0.0",
"semantic-ui-react": "^0.56.13",
"socket.io-client": "^1.5.0",
"store": "^1.3.20",
"webpack": "^1.13.3"
},
"devDependencies": {
"css-loader": "^0.25.0",
"style-loader": "^0.13.1",
"webpack-dev-server": "^1.16.2"
}
}
Pomijane są niektóre niepotrzebne zależności. Moja webpack.config.js
wygląda następująco:
var path = require("path");
module.exports = {
entry: path.resolve(__dirname, "app/index.jsx"),
output: {
path: path.resolve(__dirname, "build"),
publicPath: 'http://localhost:8080/build/',
filename: 'app.js'
},
module: {
loaders: [
{
test: /\.jsx?$/,
loader: 'babel',
exclude: /node_modules/
},
{
test: /\.css$/,
loader: "style-loader!css-loader"
},
{
test: /\.json$/,
loader: "json-loader"
}
]
}
};
Co mi brakuje na gorącą reload pracuje w tej konfiguracji?
EDYCJA: Jak widać, punkt wejścia jest zdefiniowany jako index.jsx
. Plik ten jest bardzo prosty i wygląda następująco:
import React from 'react';
import ReactDOM from 'react-dom';
import styles from './styles.css'
import routes from './router.jsx'
ReactDOM.render(
routes,
document.getElementById('app')
);
Ilekroć wprowadzić zmiany w tym pliku, gorące przeładowania jest wyzwalany. Ponadto, zmiany w importowanych plikach (takich jak styles.css) są również ponownie ładowane. Problem polega na tym, że wszystkie moje komponenty są oczywiście importowane do mojego routera. Wszelkie zmiany w moich składnikach nie są więc ponownie ładowane na gorąco. Jak mogę to poprawnie uruchomić?
Czy wszystkie pliki z rozszerzeniami z JS 'jsx'? Twój pierwszy program ładujący informuje o rozszerzeniu 'jsx'. Czy mógłbyś zaktualizować swoje pytanie? –
Tak, wszystkie składniki mają rozszerzenia ".jsx". – Orbit
jakiekolwiek użycie komponentu musi być pisane wielkimi literami, spróbuj. Wiem, że to dziwne, widziałem to. trasy -> Trasy – JordanHendrix