下面是我的webpack.config.js代码
pip install
这是我的package.son
的脚本代码var webpack = require('webpack');
var path = require('path');
module.exports = {
// context: __dirname + "/app",
entry: [
'webpack-dev-server/client?http://0.0.0.0:8080',
'webpack/hot/only-dev-server',
'./src/main.jsx'],
output: {
path: "./build",
filename: "main.js"
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loaders: ['react-hot', 'babel'],
include: path.join(__dirname, 'build'),
query:
{
presets:['es2015', 'react']
},
plugins: [
new webpack.HotModuleReplacementPlugin()
]
}
]
}
}
这是我的main.js代码
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"dev": "webpack-dev-server --devtool eval --progress --colors --hot --content-base build"
},
当我输入“npm run dev”时,我收到了此错误
var React = require('react');
var ReactDOM = require('react-dom');
ReactDOM.render(
<h1>Hello World!</h1>,
document.getElementById('example')
);
我去localhost:8080并没有显示。 谁知道发生了什么? 为什么我的反应热装载机不工作?
答案 0 :(得分:4)
我使用找到的解决方案here使其工作。基本上需要做的是将module.hot.accept()
添加到您将组件渲染到的脚本中。
例如:
import React from 'react';
import ReactDOM from 'react-dom';
import MainLayout from './components/MainLayout.jsx';
ReactDOM.render(
<MainLayout />,
document.getElementById('root')
);
module.hot.accept(); // <-- this one.
答案 1 :(得分:0)
请参阅react-hot-boilerplate github并查看github中的.babelrc
文件。
也许我没有,也请在您的设置中查看include
,query
,0.0.0.0
。
请记住,根据您的babel版本(5或6),设置必须不同。
现在反应热门加载器已被弃用。请参阅react-hot-loader github。
答案 2 :(得分:0)
默认情况下,react js提供热重载功能。 仍然无法正常工作:
尝试将-- --reset-cache
添加到您的运行命令中。
*对于Linux OS