javascript - React 和 Webpack 开发服务器:热重载不起作用
问题描述
我有一个带有相当简单的 Webpack 设置的 React 应用程序,我想使用 Webpack Dev Server 并启用热重载。感觉就像我已经阅读了几乎所有解决这个问题的答案......
包.json
"dev": "NODE_ENV=dev webpack-dev-server --hot --inline --open --progress --mode development --content-base dist --config webpack.dev.js",
webpack.common.js
devtool: "source-map",
entry: [
"babel-polyfill",
"./src/client/index.js"
],
output: {
path: path.join(__dirname, "dist"),
filename: "bundle.js",
publicPath: "/assets/"
}
webpack.dev.js
const common = require("./webpack.common.js");
module.exports = merge(common, {
devtool: "inline-source-map",
devServer: {
compress: true,
contentBase: path.resolve(__dirname, "dist"),
index: "index.html",
stats: "normal",
inline: true,
clientLogLevel: "info"
},
mode: "development"
});
为了运行这个项目,我运行yarn run dev
它,它会加载 webpack-dev-server 并在浏览器中打开 React 应用程序,但是它不会热重载。我不确定它是否会重新构建 bundle.js 文件,因为重新刷新浏览器时,它仍然会加载旧版本的代码。
解决方案
您正在加载静态配置页面。静态包是磁盘上的文件,它会在你运行 webpack build 命令后重新创建。当它准备好发布时,您将在生产中使用静态配置。
您需要从 webpack 虚拟文件系统加载动态包,它是服务器,并且可以从绑定 webpack 开发服务器的 url 访问。例如http://localhost:8080/dist/bundle.js
. 每次更改源时,这将由 webpack 开发服务器更新。
推荐阅读
- html - Grid 项目导航栏中的 Flexbox 下拉菜单
- python - 这个 shell 脚本行是做什么的?
- python - Pandas - 排除数字列为 NaN 的行
- tensorflow - logits 和标签必须具有相同的形状 ((None, 4, 1, 2) vs (None, 2))
- layout - “isRtlSupported && 1”是什么意思?
- python-3.x - 数据框中的无关数字格式
- powershell - 如何使用 Select-String 从文件中“grep”整行?
- c# - Retrieve a Remote's Default Branch
- sdk - 如何将一维光谱分配给图像堆栈
- java - 如何使用 javac 或 javah 命令在 JNI 头文件中生成结构定义?