VS 2022 w/Resharper无法识别React Scripts语法问题求助
问题描述
- 安装部署多款React JS演示应用过程中,部分项目可正常弹出语法错误提示,部分项目无法识别代码语法,无对应错误提示
- 异常项目代码可正常构建、运行,仅存在不影响核心功能的依赖弃用警告
- 问题截图:

- 异常项目
package.json配置如下:
{ "name": "conversations-demo-sdk-update", "version": "1.2.0", "private": true, "proxy": "http://localhost:3001", "dependencies": { "@twilio/conversations": "1.2.0", "antd": "^3.26.20", "dotenv": "^10.0.0", "ngrok": "^3.4.0", "node-sass": "^6.0.1", "prop-types": "^15.7.2", "react": "^16.14.0", "react-dom": "^16.14.0", "react-dropzone": "^10.2.2", "react-router-dom": "^4.3.1", "react-scripts": "4.0.1", "request-promise": "^4.2.6", "twilio": "~3.6.6" }, "devDependencies": { "concurrently": "^3.6.1", "react-app-rewired": "^2.2.1" }, "scripts": { "start": "concurrently \"react-scripts start\" \"node index.js\"", "build": "react-app-rewired build", "test": "react-app-rewired test", "eject": "react-scripts eject" }, "eslintConfig": { "extends": "react-app" }, "browserslist": [ ">0.2%", "not dead", "not ie <= 11", "not op_mini all" ], "keywords": [], "description": "" }
问题原因
该问题不是缺少核心依赖包导致,和Visual Studio项目本身的核心配置也无直接关联,核心诱因有两个:
- 脚本启动链路不统一:项目的
build、test命令均通过react-app-rewired启动,会读取根目录下的config-overrides.js自定义配置,但start命令直接调用react-scripts start,如果自定义配置中包含ESLint规则调整、语法校验插件注入的逻辑,开发服务启动时不会加载这部分配置,直接导致开发环境语法校验失效。 - 编辑器ESLint服务适配异常:Create React App 4.x版本内置的ESLint版本较旧,如果VS Code的ESLint插件版本过高、打开项目时未定位到根目录、ESLint服务未正确识别工作区依赖路径,就会出现编辑器无语法提示、但项目可正常构建运行的现象。
修复步骤
- 统一启动脚本链路,修改
package.json内的start字段:
"start": "concurrently \"react-app-rewired start\" \"node index.js\""
修改完成后重新执行npm install确保依赖链接正确,重启开发服务,先确认终端、浏览器控制台是否正常输出ESLint校验报错。
2. 调整VS Code侧ESLint配置:
- 确认已安装ESLint官方插件
- 打开VS Code设置面板,搜索
Eslint: Working Directories项,将当前项目的根绝对路径加入配置列表 - 调出命令面板(Windows快捷键
Ctrl+Shift+P、Mac快捷键Cmd+Shift+P),执行ESLint: Restart ESLint Server重启校验服务
- 若上述操作后仍无提示,检查根目录下
.eslintignore文件是否存在全局忽略所有代码的误配置,同时查看VS Code底部状态栏的ESLint运行状态,如果显示已禁用,点击图标重新启用即可。
现有依赖弃用警告不会影响语法校验功能,无需为解决该问题特意升级依赖版本,避免引发版本兼容问题导致项目无法正常运行。
内容的提问来源于stack exchange,提问作者rwkiii
相关产品推荐
相关产品推荐

