【问题标题】:Development server of create-react-app stops auto refresh when meeting an error detected by ESLINTcreate-react-app 的开发服务器遇到 ESLINT 检测到的错误时停止自动刷新
【发布时间】:2021-01-29 02:49:01
【问题描述】:

我在 VS Code 中启动 React.js 项目

npm 开始

create-react-app 的开发服务器在遇到 ESlint 错误时停止。当错误得到修复时,它永远不会自动刷新页面。需要手动刷新浏览器页面,按刷新键或F5。

例如:如果我删除了一些右括号(默认情况下是错误的,不是由 ESlint 配置的),开发服务器会停止,但是当我放回括号时,服务器会自动刷新页面。 但是当错误由 ESlint 定义时(例如“no-trailing-spaces”),开发服务器停止并且在修复错误后它永远不会刷新页面..

以下是图片中的结果:
the server stops when encountered an error by ESlint

after the errors are fixed, the server still show error and never refresh automatically

附言实际上服务器在第一个修复错误时只刷新一次!在以下每个已修复的错误中,服务器永远不会刷新!

有什么办法可以解决这个问题吗?

非常感谢!

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    如果没有发生这种情况,请尝试以下解决方法之一:

    • 如果您的项目位于 Dropbox 文件夹中,请尝试将其移出。
    • 如果观察者没有看到名为 index.js 的文件并且您通过文件夹名称引用它,则您 need to restart the watcher 由于 Webpack 错误。
    • 一些编辑器,如 Vim 和 IntelliJ,有一个“安全写入”功能,目前会破坏观察器。您将需要禁用它。按照“Disabling swap files creation in vim”中的说明进行操作。
    • 如果您的项目路径包含括号,请尝试将项目移动到没有括号的路径。这是由Webpack watcher bug 引起的。
    • 在 Linux 和 macOS 上,您可能需要调整系统设置以允许更多观察者。
    • 如果项目在虚拟机中运行,例如(Vagrant 配置的)VirtualBox,如果项目目录不存在,则在项目目录中创建一个 .env 文件,并将 CHOKIDAR_USEPOLLING=true 添加到其中。这可确保下次您运行 npm start 时,观察者会根据虚拟机内部的需要使用轮询模式。

    【讨论】:

    • 开发服务器自己刷新页面,但是当代码中有一些错误被ESlint定义为“错误”时,即使错误被修复,服务器也会停止并停止刷新。我尝试在 VS Code 等上进行全新安装。即使我尝试在另一台 PC 上进行全新安装。问题依然存在。该问题与ESlint和开发服务器有关,在ESlint检测错误时出现!
    • stackoverflow.com/a/62389000/11404554 检查这个,如果您的问题解决了,请告诉我。
    • 是的,当我从项目中删除 ESlint 时,开发服务器刷新正常,但没有显示 ESlint 是否定义了任何错误。无论如何,感谢您的帮助!
    【解决方案2】:

    原来问题与 ESlint 无关,而与 react-scripts 版本有关。

    遗憾的是,我花了几天时间才弄清楚问题出在哪里。

    首先我以为问题与 ESlint 有关,但我错了。

    即使项目中没有 ESlint,开发服务器也不会刷新。

    经过研究,我发现问题出在 react-script 版本 4.0.0 和 4.0.1。

    目前唯一的解决方法(当 react-script 4.0.1 可用但不起作用时)是降级到 react-script 3.4.4。

    为了实现这一点,我使用以下步骤:

    在项目文件夹中:

    1. In "package.json" file change react-scrips version: "react-scripts": "3.4.4"
    
    2. Delete "package-lock.json" file
    
    3. Delete whole folder "node_modules"
    
    4. In the Terminal: npm install
    
    5. In the Terminal: npm start
    

    在这些步骤之后,开发服务器再次像魅力一样刷新:)

    我想指出,上述步骤必须适用于使用 react-scripts 4.0.0 或 4.0.1 并在开发服务器上遇到刷新问题的人。

    【讨论】:

      猜你喜欢
      • 2017-09-02
      • 1970-01-01
      • 2022-06-28
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 2020-12-23
      相关资源
      最近更新 更多