VSCode终端执行node script.js报错,90%是环境未加载:先确认系统终端node -v正常,再比对VSCode终端PATH是否含Node路径;Windows需设PowerShell执行策略并补PATH,macOS/Linux需确保shell配置加载nvm且用code .启动;调试器须在launch.json中硬编码runtimeExecutable绝对路径。

VSCode终端里执行 node script.js 报错,90% 不是脚本写错了,而是环境根本没加载进来——node 命令本身都找不到,后续一切都不成立。
终端报 “command not found: node” 或 “无法识别为 cmdlet”
这是最表层但最误导人的错误。它不表示 Node.js 没装,只说明当前 shell 进程压根没见过 node 这个命令。
- 先在系统终端(非 VSCode)里运行
node -v和npm -v,确认安装和 PATH 正常;失败就重装 Node.js LTS,并勾选 “Add to PATH” - 在 VSCode 终端里执行
echo $PATH(macOS/Linux)或echo %PATH%(Windows),对比系统终端输出,看 Node 安装路径(如/usr/local/bin或C:Program Files odejs)是否缺失 - Windows 用户若用 PowerShell,默认策略会拦截 npm 生成的
.ps1包装脚本,报错像File xxx.ps1 cannot be loaded because running scripts is disabled;运行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser后必须关闭所有终端标签页再新建一个 - macOS/Linux 用户用 nvm 管理版本时,确保
~/.zshrc(或对应 shell 配置)里有source ~/.nvm/nvm.sh,且 VSCode 是通过终端执行code .启动的,否则不继承 shell 环境
终端能跑 node -v,但 node index.js 报 “Cannot find module”
这说明 Node 运行时找到了,但模块解析失败——大概率是工作目录或文件类型配置不对。
- VSCode 终端默认打开位置是 workspace root,但你右键某个子目录下的文件“在集成终端中运行”,它不会自动
cd到该目录;手动执行前先用pwd(macOS/Linux)或Get-Location(PowerShell)确认当前路径,再ls或dir看目标文件是否存在 - 如果脚本用了
import语法,Node 默认按 CommonJS 解析,会直接崩;解决方法二选一:index.mjs后缀,或在package.json中加"type": "module" - 路径别写相对简写,比如
./src/app.js或app.js;推荐用完整路径变量:${workspaceFolder}/src/app.js,前提是项目是以“文件夹”方式打开的(不是单个文件)
脚本明明能跑,但调试(F5)断点灰掉、没反应
VSCode 调试器(pwa-node)和终端是两套独立环境,它不读终端的 PATH,也不继承终端的执行策略。
- launch.json 中
"runtimeExecutable"必须指向真实node.exe或node可执行文件路径(如"D:\nvm4w\nodejs\node.exe"),不能留空或写错斜杠方向 -
"program"字段必须是可访问的 JS 文件绝对路径(支持变量),不能是./app.js或npm start这类命令;如果是 npm 脚本,得改成"runtimeExecutable": "npm", "runtimeArgs": ["start"] - 检查 Node 版本:
node -v必须 ≥ v8.0,否则--inspect协议不支持;低于此版本的调试器会静默失败,无任何提示 - 沙箱模式(左下角黄色 Restricted Mode 提示)会主动剥离环境变量和外部调用权限;点击提示 → Trust Folder and Subfolders → 彻底关闭并重启 VSCode 才生效
调试连不上、卡在 “Starting target…”
这不是配置问题,是通信链路被拦了——防火墙或杀软静默拦截了本地回环通信(localhost:9229)。
- 先验证底层是否通畅:在 VSCode 终端运行
node --inspect-brk -e "console.log('ok')";如果卡住或报ECONNREFUSED,说明--inspect已被系统级拦截 - Windows Defender 需手动添加三个路径到“排除项”:
%USERPROFILE%AppDataLocalProgramsMicrosoft VS Code、%USERPROFILE%AppDataRoamingCode、%TEMP%scode - 国产杀软(火绒/360)要进「自定义防护」页,对
code.exe和node.exe放行“远程线程创建”和“监听本地端口”两个子项,缺一不可 - 别信“重启窗口”就够——必须彻底退出 VSCode 进程(macOS 关 Dock 图标,Windows 结束所有
Code.exe和CodeHelper.exe),否则旧环境残留
真正容易被忽略的,是 VSCode 的终端、调试器、插件三者完全不共享环境变量和策略设置;改完 PATH 或执行策略后,不重启进程,就等于没改。











