无法更新反应脚本
Failed to update react-scripts
我有一个使用 create-react-app 创建并使用 react-scripts 3.4.2 版的 React 应用程序。该应用程序运行良好,但是当我 运行 eslint 反对它时,我收到许多无效的 no-unused-vars 错误。无效是指当我转到文件时实际上正在使用该变量。
根据 看来问题与@typescript-eslint/parser 和@typescript-eslint/eslint-plugin 有关。所以我继续在我的应用程序上执行 npm list @typescript-eslint/parser @typescript-eslint/eslint-plugin
,这就是我得到的:
myapp@0.1.0 /Users/diego/myapp/client
└─┬ react-scripts@3.4.2
├─┬ @typescript-eslint/eslint-plugin@2.34.0
│ └── @typescript-eslint/parser@2.34.0 deduped
├── @typescript-eslint/parser@2.34.0
└─┬ eslint-config-react-app@5.2.1
├── @typescript-eslint/eslint-plugin@2.34.0 deduped
└── @typescript-eslint/parser@2.34.0 deduped
正如所见,这两个潜在冲突的库的所有出现都包含在 react-scripts 应用程序中,这就是我尝试更新它的原因。
我尝试更新到 4.0.3,当我这样做时,eslint 开始正常工作(那些不正确的 no-unused-vars 消失了)但是我的应用程序没有响应(我点击不同的按钮 and/or 链接没有任何反应)。更新后我在控制台中看到的唯一错误是:
Uncaught ReferenceError: process is not defined
at Object.4043 (<anonymous>:2:13168)
at r (<anonymous>:2:306599)
at Object.8048 (<anonymous>:2:9496)
at r (<anonymous>:2:306599)
at Object.8641 (<anonymous>:2:1379)
我正在搜索这个错误,我找到了 this question。错误可能与开发人员所描述的不同,但通过阅读答案,我发现他们中的许多人都指出反应脚本是根本原因,这与我的场景相吻合。
我尝试了该问题的一些解决方案,特别是 this answer (I did not try method 2 because I am not sure if adding craco is what I want) and the solution from this other answer 中的方法 1,但它们不起作用。
我也尝试更新到 react-scripts 版本 5,但我遇到了很多错误。
是否有人面临这个问题或至少有一些线索可以帮助我?
提前致谢。
您分享的错误消息似乎与 react-error-overlay
的错误有关。
react-scripts
4.0.3。使用 react-error-overlay
6.0.9。但是,6.0.10 被标记为补丁,所以 npm 使用 6.0.10 而不是 6.0.9,但是 6.0.10 与 6.0.9 不兼容。
另一方面,react-scripts
5 不使用 react-error-overlay
,但可能会对您的其他软件包造成破坏性更改,从而导致其他错误。
您可以在 CRA 存储库的这些问题中找到有关 react-error-overlay
错误的更多信息:
- 热重载失败,DOM 添加一个额外的 iframe 包含整个
html DOM 元素的内容#11880
- Is this the bug of react-error-overlay? #11773
- v5 回归 react-error-overlay 构建 - 未捕获的 ReferenceError:
进程未定义#11771
这是 react-scripts
4.0.3 的可能解决方案:
- 在您项目的
package.json
文件中:
- 在
dependencies
中,将react-scripts
版本设置为4.0.3。
- 在
dependencies
下,在 resolutions
中添加 react-error-overlay
6.0.9.
- 在
devDependencies
中添加react-error-overlay
6.0.9.
"dependencies": {
...
"react-scripts": "4.0.3",
...
},
"resolutions": {
"react-error-overlay": "6.0.9"
},
...
"devDependencies": {
...
"react-error-overlay": "6.0.9",
...
}
删除项目的 node_modules
文件夹和 package-lock.json
文件。
运行 npm install
.
运行 npm install react-error-overlay@6.0.9
.
我有一个使用 create-react-app 创建并使用 react-scripts 3.4.2 版的 React 应用程序。该应用程序运行良好,但是当我 运行 eslint 反对它时,我收到许多无效的 no-unused-vars 错误。无效是指当我转到文件时实际上正在使用该变量。
根据 npm list @typescript-eslint/parser @typescript-eslint/eslint-plugin
,这就是我得到的:
myapp@0.1.0 /Users/diego/myapp/client
└─┬ react-scripts@3.4.2
├─┬ @typescript-eslint/eslint-plugin@2.34.0
│ └── @typescript-eslint/parser@2.34.0 deduped
├── @typescript-eslint/parser@2.34.0
└─┬ eslint-config-react-app@5.2.1
├── @typescript-eslint/eslint-plugin@2.34.0 deduped
└── @typescript-eslint/parser@2.34.0 deduped
正如所见,这两个潜在冲突的库的所有出现都包含在 react-scripts 应用程序中,这就是我尝试更新它的原因。
我尝试更新到 4.0.3,当我这样做时,eslint 开始正常工作(那些不正确的 no-unused-vars 消失了)但是我的应用程序没有响应(我点击不同的按钮 and/or 链接没有任何反应)。更新后我在控制台中看到的唯一错误是:
Uncaught ReferenceError: process is not defined
at Object.4043 (<anonymous>:2:13168)
at r (<anonymous>:2:306599)
at Object.8048 (<anonymous>:2:9496)
at r (<anonymous>:2:306599)
at Object.8641 (<anonymous>:2:1379)
我正在搜索这个错误,我找到了 this question。错误可能与开发人员所描述的不同,但通过阅读答案,我发现他们中的许多人都指出反应脚本是根本原因,这与我的场景相吻合。
我尝试了该问题的一些解决方案,特别是 this answer (I did not try method 2 because I am not sure if adding craco is what I want) and the solution from this other answer 中的方法 1,但它们不起作用。
我也尝试更新到 react-scripts 版本 5,但我遇到了很多错误。
是否有人面临这个问题或至少有一些线索可以帮助我?
提前致谢。
您分享的错误消息似乎与 react-error-overlay
的错误有关。
react-scripts
4.0.3。使用 react-error-overlay
6.0.9。但是,6.0.10 被标记为补丁,所以 npm 使用 6.0.10 而不是 6.0.9,但是 6.0.10 与 6.0.9 不兼容。
另一方面,react-scripts
5 不使用 react-error-overlay
,但可能会对您的其他软件包造成破坏性更改,从而导致其他错误。
您可以在 CRA 存储库的这些问题中找到有关 react-error-overlay
错误的更多信息:
- 热重载失败,DOM 添加一个额外的 iframe 包含整个 html DOM 元素的内容#11880
- Is this the bug of react-error-overlay? #11773
- v5 回归 react-error-overlay 构建 - 未捕获的 ReferenceError: 进程未定义#11771
这是 react-scripts
4.0.3 的可能解决方案:
- 在您项目的
package.json
文件中:
- 在
dependencies
中,将react-scripts
版本设置为4.0.3。 - 在
dependencies
下,在resolutions
中添加react-error-overlay
6.0.9. - 在
devDependencies
中添加react-error-overlay
6.0.9.
"dependencies": {
...
"react-scripts": "4.0.3",
...
},
"resolutions": {
"react-error-overlay": "6.0.9"
},
...
"devDependencies": {
...
"react-error-overlay": "6.0.9",
...
}
删除项目的
node_modules
文件夹和package-lock.json
文件。运行
npm install
.运行
npm install react-error-overlay@6.0.9
.