VSCode调试Next.js服务端代码需用node --inspect启动并Attach,因Next.js 13+主进程不执行业务逻辑,真实代码运行在子进程中,直接Attach主进程导致断点无法绑定。

VSCode 本身不提供 React 或 Next.js 运行环境,装一堆插件但没配好底层工具链,npm run dev 启动失败、import 跳转标红、JSX 报错却能跑通——这些都不是 VSCode 的问题,而是 Node.js、包管理器、脚手架和编辑器配置没对齐。
Node.js 和 npm/yarn 必须先装好,且路径要进系统 PATH
VSCode 不会帮你装 Node.js。没它,npx create-next-app 或 npx create-react-app 直接报 command not found: npx。
- 去
nodejs.org下载 LTS 版本(不是 Current),安装时勾选 “Add to PATH” - 终端运行
node -v和npm -v,确认输出有效版本号(如v20.11.1/10.2.4) - 别用 macOS 自带的
/usr/bin/node,它通常太老或权限受限,会导致npm install失败或permission denied
用 create-next-app 或 create-react-app 初始化,别手动搭 Webpack/Babel
Next.js 官方推荐用 create-next-app;React 新项目优先选 Vite,速度快、TS 开箱即用,且对 VSCode 友好度更高。
将一个或多个视频上传至YouTube。当用户想“上传到YouTube”“发YouTube”“批量上传”“upload to YouTube”“post videos to YouTube”或发布到YouTube时使用此技能。
- Next.js:运行
npx create-next-app@latest my-app --typescript(加--typescript避免后续补配tsconfig.json) - React(非 SSR):用
npm create vite@latest my-react-app -- --template react,比create-react-app更轻、更现代 - 初始化完进目录,必须执行
npm install(别跳过),再跑npm run dev,看到本地服务启动成功才算通了
jsconfig.json 或 tsconfig.json 必须存在且配对正确
没这个文件,VSCode 就不知道 import Button from '@/components/Button' 里的 @/ 指哪,Ctrl+Click 跳转失效、路径补全标红是常态。
- Next.js 项目默认生成
tsconfig.json,但常被删掉或改错;React + Vite 项目完全不生成,必须手建 - 纯 JS 项目:根目录新建
jsconfig.json,内容至少含:{"compilerOptions": {"baseUrl": "src"}} - TypeScript 项目:确保
tsconfig.json中有"jsx": "react-jsx",否则 .tsx 文件里 JSX 仍报错 - 改完必须重启整个 VS Code 窗口(不是重载窗口),否则缓存不刷新,跳转还是失败
ESLint + Prettier 协同工作,但别让它们互相打架
常见现象:保存后 JSX 格式乱掉、react/jsx-closing-bracket-location 和 Prettier 换行策略冲突、自动修复删掉关键空行——根本原因是规则重叠且未解耦。
- 只开 ESLint 的
eslint.codeAction.onSave.mode = "all",关掉editor.formatOnSave(Prettier 别接管保存格式化) - 确保项目有
.eslintrc.cjs或eslint.config.js,且启用了plugin:react/recommended和plugin:react-hooks/recommended - 删掉与 Prettier 高度重叠的规则,比如
jsx-quotes、quote-props、object-curly-spacing,交给 Prettier 管 - VSCode 设置里加
"eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"],否则 .tsx 文件不校验
最常被忽略的是:VSCode 默认语言服务对 JSX 支持有限,尤其在纯 JS 项目里。关掉 javascript.validate.enable(设为 false),把校验权完全交给 ESLint 插件,反而更稳。还有,files.associations 必须设对:"*.jsx": "javascriptreact",拼成 jsx 或 react 都无效。

















