通过以下配置,我可以使用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
}
刚试过补充说,但它并没有改变结果。我假设我传递给webpack-dev-server命令的标志做同样的事情。 – jonofan