1

我正在尝试使用热模块替换使用 Webpack 构建我的 React 项目。但是,Webpack 会忽略文件更改。我究竟做错了什么?我的配置:

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

  module.exports = {
    entry: [
      'webpack-dev-server/client?http://localhost:4567',
      'webpack/hot/only-dev-server',
      './src/index'
    ],
    output: {
      path: path.join(__dirname, 'dist'),
      filename: 'bundle.js',
      publicPath: '/static/'
    },
    plugins: [
      new webpack.HotModuleReplacementPlugin(),
      new webpack.NoErrorsPlugin()
    ],
    module: {
      loaders: [{
        test: /\.js$/,
        loaders: ['react-hot', 'babel'],
        include: [path.join(__dirname, 'src')]
      }]
    }
  };

我的文件结构:

src
--app
----actions
----components
----constants
----reducers
----app.js
----config.js
--index.js

如果模块文件位于“src”文件夹中,热模块替换工作正常,否则更改不会发生任何事情。

谢谢!

4

1 回答 1

0

因为您已经include在 webpack 配置中进行了设置。

您可以像这样更改配置: var path = require('path');

  var webpack = require('webpack');

  module.exports = {
    entry: [
      'webpack-dev-server/client?http://localhost:4567',
      'webpack/hot/only-dev-server',
      './src/index'
    ],
    output: {
      path: path.join(__dirname, 'dist'),
      filename: 'bundle.js',
      publicPath: '/static/'
    },
    plugins: [
      new webpack.HotModuleReplacementPlugin(),
      new webpack.NoErrorsPlugin()
    ],
    module: {
      loaders: [{
        test: /\.js$/,
        loaders: ['react-hot', 'babel'],
        include: [`all of your dirs you want to watch`]
      }]
    }
  };
于 2016-04-21T09:35:07.067 回答