3

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

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

我有以下文件夹结构:

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

码头工人-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 文件夹包含应用程序本身。

4

1 回答 1

2

有点晚了,但也许它可以帮助某人。

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

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

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

于 2019-08-02T16:12:03.997 回答