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

cha*_*ger 24 linux node.js reactjs create-react-app

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

Kes*_*ran 23

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

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

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

更多参考:

  • 对我来说是 6,该解决方案适用于虚拟盒子(我正在使用的),谢谢! (4认同)
  • 啊。选项6也是我的问题。 (3认同)
  • 当热重载突然无故停止工作时,增加 max_users_watches 效果很好。 (2认同)
  • 选项 6 对我有用 (2认同)
  • 我正在使用适用于 Linux 的 Windows 子系统 (WSL 2),6 对我有用 (2认同)

Luk*_*aic 6

试试这些:

  • 在您的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

  • 其他所有变通办法都没有运气,但您的最后一招却奏效了。我的环境是Ubuntu,VS Code,CRA。 (2认同)
  • CHOKIDAR_USEPOLLING=true 可以帮助您考虑使用另一个环境变量 CHOKIDAR_INTERVAL=2000 。这限制了 CHOKIDAR 轮询方法使用的 CPU 量 (2认同)

pro*_*jon 6

我能够使用以下方法完成这项工作:

sudo npm start
Run Code Online (Sandbox Code Playgroud)


小智 5

运行这个命令

sudo -i
echo 1048576 > /proc/sys/fs/inotify/max_user_watches
exit
Run Code Online (Sandbox Code Playgroud)