根本原因是vscode从图标启动时不读取~/.bashrc等shell配置文件,导致path未包含node路径;需用code .从终端启动并验证node -v生效后,再配置调试。

VSCode 在 CentOS 上跑不了 Node.js,90% 是因为 node 命令根本没被它看见 —— 不是插件没装、不是 launch.json 写错,而是环境变量压根没继承进来。
为什么终端里 node -v 能用,VSCode 里却报 “command not found”
CentOS(尤其 GNOME 桌面)下,从图标或 Dock 启动 VSCode 时,它不读 ~/.bashrc 或 ~/.bash_profile,PATH 里没有 node 的路径(比如 /usr/bin/node 或 /opt/nodejs/bin/node)。
- 先在终端执行
which node,记下输出路径(例如/usr/bin/node) - 检查该路径是否已在 shell 配置文件中写入
PATH,例如:export PATH="/usr/bin:$PATH" - 关掉所有 VSCode 窗口,改用终端启动:
code .—— 这是最稳妥的继承方式 - 打开 VSCode 内置终端(
Ctrl + `),立刻执行node -v,有输出才算真正通了
确认 Node.js 已安装且可被调用
CentOS 7/8 默认源里的 Node.js 版本太老(v6/v8),无法支持现代 JS 语法和调试器。别依赖 yum install nodejs。
根据 package.json 中的 engines 字段自动检测 Node.js 版本需求,未安装 nvm 时自动安装并切换至对应版本。支持 Windows、macOS、Linux。适用于 Node.js 项目开发、版本切换和环境配置。
- 推荐用 Nodesource 官方源安装 LTS 版本:
curl -sL https://rpm.nodesource.com/setup_lts.x | sudo bash -,再sudo yum install -y nodejs - 验证:
node -v应输出 v18.x 或 v20.x;npm -v也得有响应 - 如果
node -v在终端能用但 VSCode 终端不行,说明前面的环境变量继承问题还没解决,别往下配调试
运行单个 JS 文件:别急着配 launch.json
最直接、最不容易出错的方式,就是用内置终端手动跑 —— 尤其适合脚本、工具类代码。
- 打开含
index.js的文件夹(File > Open Folder) - 按
Ctrl + `呼出终端,输入:node index.js - 若报
Cannot use import statement outside a module,在项目根目录加package.json,内容含"type": "module" - 避免用
code-runner插件跑 ESM 或带process.stdin的脚本 —— 它不支持交互式输入,会卡死
调试时断点不生效的常见硬伤
断点红点打了,F5 启动后直接跑完没停 —— 很可能 launch.json 指向了错误路径,或工作目录不对。
-
program字段必须是真实可执行的 JS 文件路径,不能是.ts、.jsx或构建前源码;例如写成"program": "${workspaceFolder}/src/server.js" -
cwd(工作目录)决定require()和模块解析路径,不设或设错会导致Cannot find module - 不要用默认的
"program": "${file}"调试多文件项目 —— 当前打开的文件未必是入口 - 如果用了
nodemon或其他 wrapper 启动,调试器连不上;调试阶段请直接用node --inspect-brk启动
真正卡住人的,从来不是“怎么配”,而是“VSCode 根本没拿到 node”。先把 code . 启动 + node -v 在内置终端跑通,后面所有操作才有意义。路径、模块类型、调试配置,都是建立在这个前提上的细节问题。










