首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >让webpack-dev-server在docker下工作

让webpack-dev-server在docker下工作
EN

Stack Overflow用户
提问于 2020-07-24 09:26:38
回答 1查看 119关注 0票数 1

我正在尝试在docker中运行webpack-dev-server,这样我就可以热重新加载我的react组件。由于某些原因,webpack-dev-server不能通过docker进行热重新加载。根据日志,对react文件的更改确实会重新编译代码。但是我的浏览器没有收到刷新的信号。如果我手动刷新浏览器,它确实会反映代码更改。

有趣的是,当我在主机上本地运行时,同样的配置实际上是有效的,所以我怀疑这是一个套接字连接问题。

webpack-dev-server如何让web浏览器知道应该重新加载?

我还注意到webpack-dev-server打开了8080端口。这样做的目的是什么?我是否要为我的web浏览器提供(http://localhost:8080/)地址,而不是通常的web服务器地址(http://localhost:3000/)?或者,端口8080是否用于其他用途?

以下是我的配置文件以供参考:

代码语言:javascript
复制
dev_server:
  https: false
  host: localhost
  port: 8080
  public: localhost:8080
  hmr: false
  # Inline should be set to true if using HMR
  inline: true
  overlay: true
  compress: true
  disable_host_check: true
  use_local_ip: false
  quiet: false
  pretty: false
  headers:
    'Access-Control-Allow-Origin': '*'
  watch_options:
    ignored: '**/node_modules/**'
EN

回答 1

Stack Overflow用户

发布于 2020-09-08 05:36:35

好了,我发现在我的特定配置中有三件事是错误的。首先,需要加载"web-dev-server“才能进行热加载。因此,我的Procfile.dev-hmr如下所示:

代码语言:javascript
复制
web: bundle exec rails s -b 0.0.0.0 -p 3000  
webpack-dev-server: bin/webpack-dev-server

我加载这个文件,如下所示:

代码语言:javascript
复制
foreman start -f Procfile.dev-hmr

其次,webpack-dev-server在3035端口上操作,因此您必须在docker上打开该端口。我使用"port“命令完成了此操作,并以以下docker-compose文件为例:

代码语言:javascript
复制
version: '3'
services:
    db:
      image: postgres:9.3
      ports:
        - "5432:5432"
      volumes:
        - ./tmp/db:/var/lib/postgresql/data
    web:
      build: .
      command: foreman start -f Procfile.dev-hmr
      volumes:
        - .:/myapp
      expose:
        - 3000
        - 3035
      ports:
        - "3000:3000"
        - "3035:3035"
      depends_on:
        - db
      user: "1000:1000"
      environment:
        - WEBPACKER_DEV_SERVER_HOST=0.0.0.0

  1. 您必须将webpacker的服务器主机设置为"0.0.0.0“(我想这是因为docker使用了一些奇怪的ip地址)。为此,我设置了环境变量: WEBPACKER_DEV_SERVER_HOST=0.0.0.0

我能够在上面的docker-compose.yml脚本中做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63065448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档