使用Docker在React Native中无法进行热重装

时间:2018-12-27 13:41:46

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

我正在尝试使用Docker容器在Windows 10计算机上开始使用React Native。我运行了一个应用程序,并通过LAN连接到它,但是当我更改代码时,即使我摇晃并按Reload,它也不会在我的设备上更改。

我正在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文件夹包含应用程序本身。

1 个答案:

答案 0 :(得分:1)

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

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

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

注意::我在Windows 10计算机上尝试了此操作,但没有实时重新加载。但是,在Ubuntu机器上执行此操作可以达到预期目的。