让webpack-dev-server在完全重新加载后提供更新的bundle

时间:2015-08-18 21:32:02

标签: javascript reload webpack webpack-dev-server

我遇到了webpack-dev-server和react-hot loader的问题。当无法热变化时(例如,在编辑非反应组件时),有时需要整页重新加载。由于开发服务器将所有新更改保留在内存中并且不将它们写入磁盘,因此执行完全重新加载会加载最新的完整版本。每次发生这种情况我都必须杀死开发服务器,进行完整构建,然后重新加载页面。

我想知道我是否有错误的配置 - 即使在完全重新加载后,开发服务器是否应该从内存中提供最新的捆绑包?如果没有,是否有人对此问题有创造性的解决方法?

这是我的webpack包和服务器配置:

var webpack = {
  bundle: {
    resolve: {
      alias: vendor.scripts.src.paths
    },
    entry: {
      app: [
        'webpack-dev-server/client?http://localhost:3001',
        'webpack/hot/only-dev-server',
        app.scripts.src
      ],
      vendor: vendor.scripts.src.names
    },
    output: {
      path: buildDirs.js,
      filename: app.scripts.bundle
    },
    plugins: [
      new webpack.optimize.CommonsChunkPlugin('vendor', vendor.scripts.bundle),
      new webpack.optimize.DedupePlugin(),
      new webpack.ProvidePlugin({
        $: 'jquery',
        jQuery: 'jquery',
        'window.jQuery': 'jquery',
        react: 'React'
      }),
      new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, /en-gb/),
      new webpack.HotModuleReplacementPlugin()
    ],
    module: {
      loaders: [
        {
          test: /\.js$/,
          exclude: /node_modules/,
          include: srcRoot,
          loaders: ['react-hot', 'babel?stage=0']
        }
      ]
    },
    watch: true,
    devtool: 'cheap-module-source-map',
    progress: true
  },
  server: {
    contentBase: buildRoot,
    hot: true,
    historyApiFallback: true
  }
};

0 个答案:

没有答案