问题 React create app hot reload并不总是在linux上运行


我使用create-react-app样板创建了一个react应用程序,这似乎非常受欢迎,当任何文件发生变化时,有时会更新热重载,有时则没有,似乎有最短的持续时间或类似的东西,我'使用Ubuntu,节点版本7.0,package.json中的脚本是 npm:'react-script start' 我错过了什么?


5773
2018-02-03 00:42


起源

您是使用任何IDE还是直接从控制台启动它? - Adolfo Onrubia
@AdolfoOnrubia命令行,我用react-script启动.. - challenger
我的意思是你如何编辑和管理你的项目文件,可能是一个错字导致反应不更新。修复代码错误,它将重新加载。 - Adolfo Onrubia
嗯我不这么认为..有时候工作正常...然后停止......然后工作......没有规则...... - challenger


答案:


当npm start未检测到更改时,以下是常见的故障排除步骤 create-react-app 文件 - 链接

当一个应用程序运行时 npm start 并且在编辑器中更新代码应该可以使用更新的代码刷新borswer。 如果没有发生这种情况,请尝试以下解决方法之一:

  1. 如果项目文件直接从Dropbox或Google云端硬盘等云存储系统同步到您的本地系统,并且您尝试直接在其中运行应用程序,请尝试将其移出。
  2. 由于Webpack错误,您可以 需要重新启动观察者。如果观察者没有检测到index.js,并且您按文件夹名称引用它。
  3. 安全写 像Vim和IntelliJ这样的编辑器中的功能目前打破了观察者。你需要 禁用它
  4. 由于 Webpack观察者bug,带有路径的项目包含括号会导致问题,请尝试将项目移动到没有它们的路径。 。
  5. 要在Linux和macOS中允许更多的观察者,您可能需要 调整系统设置
  6. 如果项目在虚拟机内运行,例如(Vagrant provisioned)VirtualBox,则创建一个 .env 文件在项目目录中,如果它不存在,则添加 CHOKIDAR_USEPOLLING=true 它。这可以确保您下次运行时 npm start,观察者在VM内部根据需要使用轮询模式。
  7. 可以尝试增加 max_users_watches - 链接 

更多参考:


8
2018-05-29 04:31





试试这些:

  • 关闭IDE中的安全写入
  • 增加 max_user_watches
  • 你的路径不应该有括号

作为最后的手段尝试使用它作为您的env变量: CHOKIDAR_USEPOLLING=true npm start

资料来源: https://github.com/facebookincubator/create-react-app/issues/659 https://github.com/facebookincubator/create-react-app/issues/1049#issuecomment-261731734


3
2018-05-26 13:55



你甚至无法想象我已经尝试了多少小时来修复热重装......只有你的答案有所帮助,非常感谢你!你是我的上帝) - kuka


unbuntu,我基本上杀死了在端口上运行的所有进程(对于react app默认为:3000)。

列出在端口3000上运行的所有进程。

lsof -i :3000 

此命令将显示如下内容。

COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
node     7429 yipl   19u  IPv4 1081760      0t0  TCP localhost:3000->localhost:35762 (ESTABLISHED)
chrome  26448 yipl  177u  IPv4 1080082      0t0  TCP localhost:35762->localhost:3000 (ESTABLISHED)

现在通过PID终止进程。

kill -9 7429
kill -9 26488

再次启动您的反应应用程序


0
2018-06-28 03:09