1

通过以下配置,我可以使用HotModuleReplacementPlugin()获得热模块替换,但在运行webpack-dev-server时不能使用--hot 。我的问题是,为什么?webpack-dev-server -hot vs HotModuleReplacementPlugin()

几乎所有近期设置热模块更换的指南都使用--hot,但它不适用于我。

var webpack = require("webpack"); 
 
var path = require("path"); 
 
    
 
const config = { 
 
    entry: path.resolve(__dirname, 'app/index.js') , 
 
    output: { 
 
    path: path.resolve(__dirname, 'output'), 
 
    filename: 'bundle.js', 
 
    publicPath: "static/" 
 
    }, 
 
    module: { 
 
    rules: [ 
 
     {test: /\.(js|jsx)$/, use: 'babel-loader'} 
 
    ] 
 
    }, 
 
    plugins: [ 
 
    new webpack.HotModuleReplacementPlugin() 
 
    ] 
 

 
}; 
 
    
 
module.exports = config;

我引用我的代码文件中像这样。

<script src="static/bundle.js"></script> 

我正在我的服务器,像这样。

webpack-dev-server --inline --colors --progress 

Version。

webpack-dev-server 2.3.0 
webpack 2.2.1 

使用此设置,热模块加载正常工作。如果我删除插件,并运行服务器追加--hot(正如我在许多示例中所见),我的热模块加载不起作用。服务器注册更改,发生转储,我的网页显示为正在重新加载,但内容不更新。

我访问过http://localhost:8080/webpack-dev-server/index.html

结构如下+ A node_modules目录。

. 
├── app 
│   └── index.js 
├── index.html 
├── output 
│   ├── bundle.js 
│   └── index.js 
├── package.json 
└── webpack.config.js 

更新

也尝试添加devServer到的WebPack配置,其中有相同的结果。

devServer: { 
compress: true, 
publicPath: "http://localhost:8080/static/", 
filename: "bundle.js", 
hot: true, 
inline: true 

}

回答

0

你设置你的webpack.config.js的devServer属性文件?

devServer: { 
    ... 
    historyApiFallback: true, 
    hot: true, 
    inline: true, 
    compress: true, 
    ... 
}, 
plugins: [ 
    new webpack.HotModuleReplacementPlugin(), 
    ... 
], 
... 

的package.json

"scripts": { 
    "development": "webpack-dev-server --progress --colors" 
} 
+0

刚试过补充说,但它并没有改变结果。我假设我传递给webpack-dev-server命令的标志做同样的事情。 – jonofan

0

你可能想添加这个还有:

entry: { 
    'app': [ 
     'webpack-dev-server/client?http://localhost:8080', 
     'webpack/hot/only-dev-server', 
     `${PATHS.SOURCE}/index.jsx` 
    ] 
} 
+0

没有太多的运气:'模块未找到:错误:无法解析'webpack-dev-server/client?http:// localhost:8080'in'/ Users/jono/dev/recipist'' – jonofan