【问题标题】:Hot reloading not working in React Native using Docker使用 Docker 在 React Native 中热重载不起作用
【发布时间】:2019-05-25 13:02:14
【问题描述】:

我正在尝试使用 Docker 容器在我的 Windows 10 机器上开始使用 React Native。我运行了一个应用程序,我通过 LAN 连接到它,但是当我更改代码时,它不会在我的设备上发生变化,即使我摇晃并按下重新加载也是如此。

我在我的 Android 手机上使用 Expo 客户端来打开应用程序。该应用程序是expo init 提供的基本多页模板。正如它所暗示的,我编辑了screens/HomeScreen.js,但应用程序没有改变。我启用了实时重载和热重载。按下重新加载会重新加载应用程序,但它保持不变。当我 cat 容器内的文件时,它被更改了,恰好捆绑器没有拾取更改。

我有以下文件夹结构:

.
├── dev
│   ├── MyProject1
│   └── Dockerfile
└── docker-compose.yml

docker-compose.yml:

version: '3'

services:

  app:
    build: ./dev
    volumes:
      - ./dev:/code
    environment:
      - REACT_NATIVE_PACKAGER_HOSTNAME=192.168.1.19
    working_dir: /code/MyProject1
    command: expo start
    ports:
      - "19000:19000"
      - "19001:19001"
      - "19002:19002"

Dockerfile:

FROM node:11.5.0-alpine

RUN apk add bash

RUN mkdir /code
WORKDIR /code
RUN npm install -g expo-cli

MyProject1 文件夹包含应用程序本身。

【问题讨论】:

    标签: docker react-native docker-compose expo hot-reload


    【解决方案1】:

    有点晚了,但也许对某人有帮助。

    我遇到了同样的问题,并通过使用 'chokidar' https://www.npmjs.com/package/chokidar 解决了它 .

    安装 chokidar 后,您必须在 docker-compose.yml 文件中进行更改: command: CHOKIDAR_USEPOLLING=true expo start

    注意:我在 Windows 10 机器上试过这个,但它没有实时重新加载。但是,在 Ubuntu 机器上执行此操作按预期工作。

    【讨论】:

      猜你喜欢
      • 2020-11-16
      • 2022-01-16
      • 2021-06-13
      • 1970-01-01
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 2021-08-29
      相关资源
      最近更新 更多