JSX报红但npm start能运行,是VSCode内置JavaScript校验器对JSX支持弱所致;应禁用javascript.validate.enable,启用ESLint并正确配置tsconfig.json/jsconfig.json、sourceMapPathOverrides及调试设置。

JSX 报红但 npm start 能跑通?关掉 javascript.validate.enable
VSCode 内置的 JavaScript 语言服务对 JSX 支持极弱,尤其在纯 JS 的 React 项目里——useState、onClick、自定义组件标签全标红,但实际完全不影响运行。这不是代码问题,是校验器错位。
- 打开设置(
Ctrl+,或Cmd+,),搜索javascript.validate.enable,设为false - 确保已安装 ESLint 插件,并且项目根目录有
.eslintrc.js(推荐用eslint-config-react-app) - TypeScript 项目必须有
tsconfig.json,且"jsx": "react-jsx"这一项不能漏、不能拼错 - 别重装插件或清缓存——这个开关不关,ESLint 和 Prettier 都压不住红波浪线
断点打在 src/App.js 却不触发?检查 sourceMapPathOverrides 和 webRoot
VSCode 调试器不启动 dev server,它只连接已运行的服务。断点失效,90% 是 sourcemap 路径映射错了:浏览器加载的是 dist/assets/index.xxxx.js,但 VSCode 不知道它对应你哪一行源码。
- 先手动运行
npm run dev(Vite)或npm start(CRA),等控制台输出地址(如http://localhost:5173)再点 ▶️ 启动调试 -
launch.json中url必须和实际地址一致;webRoot要指向构建产物根目录:CRA填"${workspaceFolder}/public",Vite填"${workspaceFolder}/dist" -
sourceMapPathOverrides必须匹配打包器路径:Vite项目用"*": "${webRoot}/../src/*",CRA用"webpack:///src/*": "${webRoot}/../src/*";少一个斜杠或写成src/**都会失效 - 调试类型必须是
pwa-chrome,不是chrome(后者在 VSCode 1.70+ 已废弃,会报Can't find Chrome)
ESLint 不提示 useEffect 依赖缺失?确认 eslint-plugin-react-hooks 已启用且校验范围包含 javascriptreact
使用 @ainative/react-sdk 为 React 应用添加 AI 聊天和积分。适用于 (1) 安装 @ainative/react-sdk,(2) 使用 useChat hook 实现聊天完成。
像 useEffect 依赖数组漏写、setState 在条件分支里调用这类问题,靠肉眼很难发现。ESLint 能抓,但前提是规则开了、插件装了、而且校验文件类型对得上。
- 检查项目是否装了
eslint-plugin-react-hooks(Vite 初始化选 ESLint 会自动装,CRA 默认也带) -
.eslintrc.js中必须启用两条关键规则:'react-hooks/rules-of-hooks'和'react-hooks/exhaustive-deps' - VSCode 设置中确认
eslint.validate包含javascriptreact:["javascript", "javascriptreact", "typescript", "typescriptreact"] - 如果用了 Prettier,
eslint-config-prettier必须放在extends数组最后,否则它关不掉其他配置里的冲突规则
import Button from '@/components/Button' 点不进去?配对 jsconfig.json 或 tsconfig.json 的 baseUrl 和 paths
没配好路径别名,Ctrl+Click 就会跳转失败。这不是插件问题,是编辑器不知道 @/ 指向哪——得靠配置明确定义。
- JS 项目在根目录建
jsconfig.json,TS 项目确保tsconfig.json存在,内容至少含:{"compilerOptions": {"baseUrl": "src", "paths": {"@/*": ["*"]}}} -
"@/*": ["*"]是关键:不是["@/*"](语法错),也不是["src/*"](会导致解析多套一层) - 改完立刻关闭并重启整个 VSCode 窗口(不是重载窗口),否则缓存不刷新,跳转依然失败
- Create React App 默认自带
jsconfig.json,但常被误删;Vite 完全不生成,必须手建
最常被忽略的是 sourceMapPathOverrides 的路径层级和 jsconfig.json 中 paths 的写法——差一个字符,跳转和断点就全废。这些不是“高级技巧”,而是 React 项目在 VSCode 里能正常工作的底线配置。

















