编程技术网

关注微信公众号,定时推送前沿、专业、深度的编程技术资料。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

极客时间

当数据在Docker容器内更改时,Create-react-app服务器不会重新编译:Create-react-app server not recompiling when data changes inside docker container

Sober Chen docker 2022-5-10 15:05 7人围观

腾讯云服务器
当数据在Docker容器内更改时,Create-react-app服务器不会重新编译的处理方法

我目前正在尝试在docker内部运行React应用程序.我正在容器中运行 npm start 的create-react-app软件包中包含的脚本运行,并且正在使用绑定安装在主机中工作并反映容器中的更改.遗憾的是,即使文件确实发生了更改,react软件包随附的重新编译功能也无法在容器内部运行.所要抓住的是,我正在使用摘要工具箱.你们知道这可能是什么问题吗?为什么不重新编译?

I'm currently trying to run a React application inside docker. I'm running the scripts included in the create-react-app package running npm start inside the container and I'm using bind mounts to work in the host and reflect changes in the container. Sadly, the recompile feature that comes with the react package is not working inside the container even though the files do change. The catch is that I'm using docket toolbox. Do you guys know what could be the problem? Why isn't it recompiling?

我的文件结构如下.

project | .dockerignore | .gitignore | docker-compose.yml | Dockerfile | LICENSE | README.md | \---frontend +---nodemodules\* | package-lock.json | package.json | README.md | +---public | index.html | \---src | index.js | \---container App.jsx 

Dockerfile

FROM node:8.11.1 COPY . /usr/src/ WORKDIR /usr/src/frontend ENV PATH /usr/src/frontend/node_modules/.bin:$PATH RUN npm install -g create-react-app RUN npm install EXPOSE 3000 CMD [ "npm", "start" ] 

docker-compose.yml

version: "3.5" services: react: build: context: . dockerfile: Dockerfile volumes: - "./frontend:/usr/src/frontend" - '/usr/src/frontend/node_modules' ports: - "3000:3000" environment: - NODE_ENV=development 

问题解答

有时候,当应用在容器中运行时,React不会在更改文件时重新编译代码.

Sometimes React does not recompile the code upon changing files when app is running inside the container.

如果项目在虚拟机(例如由Vagrant提供的VirtualBox)之类的虚拟机中运行,请在项目目录中创建一个 .env 文件(如果该文件不存在),然后添加 CHOKIDAR_USEPOLLING =正确.这样可以确保下次运行 npm start 时,观察者根据需要在VM内部使用轮询模式.有关详细信息,请参见文档.

If the project runs inside a virtual machine such as (a Vagrant provisioned) VirtualBox, create an .env file in your project directory if it doesn’t exist, and add CHOKIDAR_USEPOLLING=true to it. This ensures that the next time you run npm start, the watcher uses the polling mode, as necessary inside a VM. See documentation for details.

这篇关于当数据在Docker容器内更改时,Create-react-app服务器不会重新编译的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程技术网(www.editcode.net)!

腾讯云服务器 阿里云服务器
关注微信
^