vscode中node命令报command not found,是因未读取shell初始化文件导致path缺失;macos/linux需将which node路径加入~/.zshrc并source后用终端执行code .启动;windows需检查系统path是否含node安装目录;adonisjs的launch.json应设"program":"${workspacefolder}/bin/server.js",esm项目须配置"type":"module",调试ts项目需启用sourcemap且program指向.js文件。

VSCode 里 node 命令报 command not found 怎么办
不是插件问题,也不是 VSCode 设置错了,是它压根没读你的 shell 初始化文件(比如 ~/.zshrc),PATH 里没加 Node 路径,自然找不到 node。
macOS/Linux:终端运行 which node,拿到路径(如 /opt/homebrew/bin/node),确认该路径已写进 ~/.zshrc 的 export PATH="...:$PATH";改完必须 source ~/.zshrc,然后彻底退出 VSCode(不是关窗口),再从终端执行 code . 启动。
Windows:打开系统环境变量,检查 C:\Program Files\nodejs\ 是否在“系统变量 > PATH”中;没加就手动添,或者重装 Node.js 并务必勾选 “Add to PATH”。
验证方式:VSCode 内置终端(Ctrl + `)里直接输 node -v —— 没输出就别往下配 launch.json,全是白搭。
AdonisJS 项目 launch.json 的 program 字段怎么填
AdonisJS 默认入口是 bin/server.js,不是 src/server.ts 或 index.js。写错路径,断点永远不触发。
"program": "${workspaceFolder}/bin/server.js" 是最稳妥的写法;如果用了 TypeScript 编译输出到 build/,那必须指向 build/server.js,且 tsconfig.json 中需开启 "sourceMap": true,并确保 .js.map 和 .js 在同一目录。
AdonisJS 是 ESM 项目,package.json 必须有 "type": "module",否则调试器按 CommonJS 解析,所有 import 都会报错。
加 "cwd": "${workspaceFolder}" 显式声明工作目录,避免 require('./config') 因路径解析失败而报 Cannot find module。
用 nodemon 调试 AdonisJS 时断点失效怎么办
别在 launch.json 里硬配 runtimeExecutable 指向 nodemon —— 这种方式会让 VSCode 无法稳定附加,断点跳过、连接中断是常态。
正确做法是切到 attach 模式:
- 终端先跑:
npm run dev -- --inspect-brk(AdonisJS 默认devscript 已含nodemon和--inspect) - 或手动:
nodemon --inspect-brk bin/server.js -
launch.json新增一个配置:"request": "attach","port": 9229(默认端口,和命令行一致)
这样 VSCode 才能真正 attach 到 nodemon 启动的子进程,断点才稳。
AdonisJS 调试时提示 “Cannot launch program because corresponding JavaScript cannot be found”
这不是代码问题,是源码映射断了,或者调试器加载了错误的运行逻辑。
如果是 TypeScript 项目,确认三件事:
-
tsconfig.json中"sourceMaps": true已启用 - 编译后
build/server.js和build/server.js.map真的在同一目录 -
launch.json的program指向的是.js文件,不是.ts文件
如果用了 adonis serve --watch 这类封装命令,别直接在 launch.json 里调它——它内部启动逻辑不透明,VSCode 无法可靠注入调试器。老实用 nodemon --inspect-brk bin/server.js 启动更可控。











