在Windows 10 / Ubuntu上更新热模块更换

时间:2017-08-10 01:40:45

标签: reactjs ubuntu express webpack windows-10

所以我一直在尝试为React配置热重载,我正在使用带有express和webpack-hot-middleware的webpack2用于HMR。

我使用适用于Linux的Windows子系统从ubuntu运行服务器,我在Windows上使用普通的Chrome作为客户端。

它在我的Mac上运行得很好,但是在Windows上它没有,我尝试将浏览器连接到'localhost'和'127.0.0.1',还明确地将express上的主机名设置为'localhost','127.0。 0.1'和'0.0.0.0'但它们都不起作用。

Webpack甚至不会在文件更改时重建。

这是我的webpack.config.js

const path = require('path');
const webpack = require('webpack');

module.exports = {
  entry: [
    path.resolve(__dirname, './src/index.jsx'),
    'webpack-hot-middleware/client'
  ],
  devtool: 'inline-source-map',
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoEmitOnErrorsPlugin()
  ],
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: 'app.bundle.js',
    publicPath: '/'
  },
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: [/node_modules/],
        use: [{
          loader: 'babel-loader',
          options: {
            presets: ['react', 'env']
          }
        }]
      }
    ]
  }
}

中间件配置

app.use(webpackDevMiddleware(compiler, {
  publicPath: config.output.publicPath
}));

app.use(webpackHotMiddleware(compiler));

app.listen(port, () => {
  console.log('Listening on port ', port);
});

1 个答案:

答案 0 :(得分:0)

我也遇到过这种情况,这似乎是linux子系统之外文件更改的问题。我使用Atom进行编辑而不是看到重建。但是,如果我从bash触摸文件或通过vi编辑它们,我会看到重新构建和重新加载。我没有从Atom那里得到更改webpack通知文件,但是如果我在我的环境中设置CHOKIDAR_USEPOLLING = true,那么在一些短轮询间隔之后,这些更改最终会被注意到。