我正在尝试使用插件https://www.npmjs.com/package/react-hot-loader来启用 hot relaod 。但是热重载不起作用,当我刷新页面时,更改会在没有构建的情况下反映出来,但这不是实时的。我认为当我在 jsx 上保存更改时,它应该实时反映在 html 上,对吗?如果我错了,请纠正我
我的 .jsx 文件
import { hot } from 'react-hot-loader'
@observer
class ListingComponent extends Component {
render() {
.........
}
}
export default hot(module)(ListingComponent);
//global function to run from other frameworks
window.WB.react.renderListingComponent = function() {
render(
<ListingComponent/>,
document.getElementById('node')
);
}
我的.babelrc
{
"presets" : ["es2015", "react"],
"plugins": ["transform-decorators-legacy","transform-class-properties","lodash","react-hot-loader/babel"]
}
我的 webpack.config.js
var webpack = require('webpack');
var path = require('path');
// var BUILD_DIR = path.resolve(__dirname, 'src/public');
var BUILD_DIR = path.resolve(__dirname, '../assets/js');
var APP_DIR = path.resolve(__dirname, 'src/app');
var config = {
resolve: {
extensions: ['.js', '.jsx']
},
entry: APP_DIR + '/index.jsx',
output: {
path: BUILD_DIR,
filename: 'bundle.js',
},
module : {
loaders : [
{
test : /\.jsx?/,
include : APP_DIR,
loader : 'babel-loader',
options: {
// This is a feature of `babel-loader` for Webpack (not Babel itself).
// It enables caching results in ./node_modules/.cache/babel-loader/
// directory for faster rebuilds.
cacheDirectory: true,
plugins: ['react-hot-loader/babel'],
},
}
]
}
};
module.exports = config;
webpack 服务器命令
npm run dev --watch --hot ----output-public-path=/assets/js/ --inline