VSCode终端找不到node命令的根本原因是环境变量未生效,需在系统终端用where node验证路径,重装Node时勾选Add to PATH并避开空格路径,改环境变量后必须完全重启VSCode,调试时launch.json须显式配置runtimeExecutable。

VSCode终端里node命令报错或根本找不到,不是插件没装对,而是环境变量压根没生效——终端启动时只快照一次PATH,改完系统变量不重启VSCode,它就永远看不到node。
终端执行node -v报“不是内部或外部命令”
这是Windows下最典型的PATH未继承问题,本质是VSCode终端根本没读到Node.js安装路径。
- 先在CMD或PowerShell里运行
where node:如果没输出,说明系统级PATH确实没配,重装Node.js时漏选了“Add to PATH” - 重装建议选路径不含空格的目录,比如
C:/nodejs,避开C:/Program Files/nodejs - 装完必须彻底关闭所有VSCode窗口(包括托盘进程),再重新打开——它不会自动刷新环境变量
- 若用
nvm-windows,where node返回的是类似D:/nvm4w/nodejs/node.exe,那就得把D:/nvm4w/nodejs加进系统PATH,而不是默认路径
终端里node -v成功但npm -v报错
常见于PowerShell执行策略限制,或npm全局路径没纳入PATH。
- 在VSCode终端里执行:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned -Force(仅对当前终端生效) - 运行
npm config get prefix,拿到全局路径(如D:/npm-global),把这个路径手动加进系统环境变量Path中 - 加完后必须关闭并重开整个VSCode(不只是重启终端),否则新PATH不加载
- 若用
nvm-windows,每次nvm use 20后,VSCode终端不会自动继承变更,需按Ctrl+Shift+P→ 输入Terminal: Reload Shell Environment手动刷新
VSCode终端能跑node,但F5调试报“Cannot find runtime 'node'”
调试器不读终端PATH,它走的是独立查找逻辑,硬编码路径最稳。
- 打开
.vscode/launch.json,确认配置含"type": "node"和"request": "launch" - 在launch.json中显式指定
"runtimeExecutable",例如:"runtimeExecutable": "C:/nodejs/node.exe"(路径用双反斜杠或正斜杠均可) - 不要依赖
${env:PATH}自动发现——调试器对环境变量注入支持有限 - 确保项目是通过
File → Open Folder打开整个文件夹,否则${workspaceFolder}会解析错误
终端能跑node,但require报Cannot find module
这不是Node没装好,而是node_modules不在当前工作目录下——Node.js只认执行时所在目录下的node_modules。
- 确认终端当前工作目录:
cd(Windows)或pwd(macOS/Linux),它必须和package.json、node_modules在同一级 - 运行
npm ls express验证模块是否真装上了;若报ELSPROBLEMS,大概率是node_modules损坏,删掉重装 -
require('./modules/helper')里的.是相对于require语句所在文件的位置,不是VSCode打开的根目录 - 插件开发时出现
module not found,别去业务项目里装依赖——插件有自己独立的运行上下文
最容易被忽略的一点:VSCode终端类型(PowerShell/CMD/WSL)各自维护一套PATH,你在CMD里配好了,不代表PowerShell终端也能看到;改完环境变量后,不彻底退出VSCode,所有终端都还是旧快照。











