3

我正在尝试使用插件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
4

1 回答 1

0

尝试

echo 999999 | sudo tee /proc/sys/fs/inotify/max_user_watches   
于 2020-01-04T15:29:16.823 回答