npm install后npm start报错“command not found: react-scripts”或“cannot find module 'react-scripts'”,主因是node_modules未完整安装(如被中断、磁盘不足)或误删,而非网络问题;应优先用npm ci按package-lock.json严格重装,避免混用pnpm/yarn命令,且cra项目中react-scripts仅在devdependencies中,禁用--production参数。

npm install 之后为什么 npm start 报错?
常见现象是 npm install 成功,但执行 npm start 时提示 command not found: react-scripts 或 Cannot find module 'react-scripts'。这不是网络问题,而是 node_modules 没装全或被误删。
- 检查项目根目录是否存在
node_modules文件夹和package-lock.json;若缺失,说明npm install实际没完成(比如被 Ctrl+C 中断、磁盘空间不足) - 不要手动删
node_modules后只运行npm i—— 优先用npm ci(它严格按package-lock.json安装,更可靠) - 如果用了 pnpm/yarn,就别混用 npm 命令;
pnpm install后必须用pnpm start,否则找不到对应二进制 - CRA 项目依赖
react-scripts,它只在devDependencies里,npm install --production会跳过它,导致npm start失败
npm start 跑起来了,但 VSCode 断点不生效
VSCode 的调试器不会启动服务,只连接已运行的开发服务器。断点失效,90% 是 sourcemap 映射路径错位。
- 先确认终端里
npm start已输出Local: http://localhost:3000,且浏览器能打开页面 -
launch.json中的url必须和终端输出地址完全一致(不能写成http://127.0.0.1:3000,也不能漏http://) -
webRoot要指向构建产物根目录:CRA 项目填"${workspaceFolder}/public",Vite 填"${workspaceFolder}/dist" -
sourceMapPathOverrides必须匹配打包器生成的 sourcemap 路径:CRA 用"webpack:///src/*": "${webRoot}/../src/*",Vite 用"*": "${webRoot}/../src/*";少一个斜杠、多一个星号都会让断点失效
调试类型选 pwa-chrome 还是 chrome?
必须选 pwa-chrome。VSCode 1.70+ 版本已废弃旧版 chrome 调试器,继续用会报 Can't find Chrome,哪怕你本地装了 Chrome 也没用。
- 在
.vscode/launch.json中,type字段只能是"pwa-chrome",不是"chrome" - 确保已安装官方插件
Debugger for Edge或Debugger for Chrome(注意:后者名称虽含 Chrome,实际支持新版 PWA 协议) - 如果 Chrome 是便携版或装在非默认路径,需在
launch.json中显式指定runtimeExecutable,例如"runtimeExecutable": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
JSX 标红但项目能跑,怎么关掉?
这是 VSCode 内置的 JS 语言服务在报错,它不理解 JSX 语法,和 ESLint 无关。关掉它,ESLint 仍会按规则校验。
- 打开设置(
Ctrl+,或Cmd+,),搜索javascript.validate.enable,设为false - 保留 ESLint 插件,并确保项目有
.eslintrc.js(推荐用eslint-config-react-app) - TypeScript 项目检查
tsconfig.json中是否有"jsx": "react-jsx";JS 项目则需jsconfig.json含"compilerOptions": { "jsx": "react-jsx" }
sourceMapPathOverrides 的路径拼写 —— 它不像代码会报错,只是默默让断点失效。多核对一次斜杠方向和通配符位置,比重装插件管用。











