vscode本身不带node.js运行时,必须先在系统安装并确保node -v和npm -v在系统终端成功执行;若报command not found,需检查path配置(windows勾选add to path,macos/linux用nvm并写入shell配置),重启vscode后验证。

VSCode 本身不带 Node.js 运行时,必须先在系统装好 Node.js 并确保 node -v 和 npm -v 在终端能执行成功——这是所有后续配置的前提,不是 VSCode 的问题,而是环境缺失。
node -v 报 command not found 怎么办
这说明 VSCode 根本没看到 Node.js,调试、插件、终端命令全会失败。别急着装插件,先解决这个:
- 在系统终端(不是 VSCode 内置终端)里运行
node -v和npm -v,必须都输出版本号 - Windows 用户:重装 Node.js 时务必勾选 Add to PATH;路径含空格或中文(如
C:Program Files odejs)会导致失败 - macOS/Linux 用户:推荐用
nvm管理版本,避免权限冲突;确认which node输出路径已写入~/.zshrc或~/.bash_profile - 改完环境变量后,必须完全关闭并重启 VSCode,否则内置终端仍继承旧 PATH
launch.json 中 program 字段填什么才不报错
VSCode 调试器靠这个字段定位入口文件,填错就直接卡在 Cannot find module 或静默退出:
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- 临时调试当前打开的文件:用
"program": "${file}"(注意不是${fileBasename}) - 固定入口文件(如
index.js或app.js):写成"program": "${workspaceFolder}/index.js",并确保该文件真实存在 - TS 或 ESM 项目:
program必须指向编译后的 JS 文件(如dist/index.js),不能是src/index.ts,否则会报ERR_REQUIRE_ESM - ESM 项目还需加
"env": {"NODE_OPTIONS": "--enable-source-maps"},否则断点映射失效
哪些 Node.js 插件真有用,哪些可以关掉
@vscode/node-extension-pack 是个合集包,但里面真正影响日常开发的只有几个核心组件:
-
必装:
Debugger for Node.js(调试器本体)、ESLint(代码检查)、Prettier(格式化)——三者配合才能实现保存即修复 + 格式化 -
可选但实用:
Path Intellisense(补全require()或import路径),但对纯 ESM 项目支持弱;JavaScript (ES6) code snippets提升编码速度 -
慎用:
Auto Import类插件在大型项目中容易误导入、打乱import排序逻辑;Code Runner默认绕过package.json的"type": "module"配置,容易触发Cannot use import statement outside a module
调试时断点不触发或控制栏灰掉
F5 按下没反应、打了断点却不停,大概率是 launch.json 配置或运行上下文不对:
- 检查
request字段是否为"launch"(不是"attach"),且type是"pwa-node"(新版默认) - 多 Node 版本环境下(比如用了
nvm),runtimeExecutable必须显式指定,例如:"runtimeExecutable": "/usr/local/bin/node"(macOS/Linux)或"runtimeExecutable": "C:\nodejs\node.exe"(Windows) - 验证是否生效:在代码里加
console.log(process.execPath),对比输出路径和runtimeExecutable是否一致 - 调试前务必手动保存文件(
Ctrl+S/Cmd+S),VSCode 不会自动保存未改动的文件
最容易被忽略的是:VSCode 终端是否真的继承了你 shell 里生效的环境变量。哪怕系统终端能跑 nodemon,VSCode 里报 command not found,往往只是它没读取 ~/.zshrc ——这时重启 VSCode 或在终端里手动执行 source ~/.zshrc 更快见效。










