Webpack开发服务器只能在docker上进行热重载。

问题描述 投票:0回答:1

我有一段代码,可以在docker上运行,也可以在本地运行,但由于某些原因,热重载只在docker上运行。

代码显然是相同的,而且内容是用webpack开发服务器正常托管和服务的。热重载没有端口错误,而且两个解决方案使用的是同一个主机端口。

到底是什么原因呢?

以下是两者的区别。

HOST: ubuntu with node v14.1.0.

CONTAINER:node:14.0.0-alpine3.10。

用来运行的命令是

webpack-dev-server --config webpackwebpack.dev.js --hot

而webpack的相关部分是

module.exports = {
  ...common,
  mode: "development",
  devServer: {
    historyApiFallback: true,
    host: "0.0.0.0",
    publicPath: "/",
    allowedHosts: ["0.0.0.0", "localhost", "*"],
    port: process.env.port || 3001
  },
  watch: true
};

而包的版本是:

  • "react-hot-loader": "^4.12.20",
  • "webpack": "^4.42.1",
  • "webpack-cli": "^3.3.11",
  • "webpack-dev-server"."^3.10.3 "^3.10.3"

我想不出为什么它只能在docker上运行,而不能在主机上运行,如果有的话,我希望是相反的。

reactjs docker webpack-dev-server
1个回答
1
投票

一个错误堆栈将使我们很容易帮助你。也许你的3001端口正在被其他服务使用。

但这与此无关,这里 https:/youtu.bekIe7E02j2jY 你会发现关于从头开始为React配置webpack 4的细节。如果你是初学者,这是很有用的资源。


0
投票

之所以热重载不能用,是由于 webpack-dev-server 寻找目录中的文件变化,它使用的是 fseventinotify. 这些都是webpack用来观察指定目录下的文件的模块。你可以看看这个 详询如果你觉得它是对的,请接受并加注。

© www.soinside.com 2019 - 2024. All rights reserved.