能直接在vscode内置终端执行node -v显示版本号才算环境配置成功;需彻底退出vscode重启以继承path,esm项目须配置"type":"module"或使用.mjs扩展名。

能直接在 VSCode 内置终端里敲 node 并看到版本号,才算真正具备运行条件;90% 的“运行失败”其实卡在环境变量没继承进来,不是插件或配置的问题。
终端里 node -v 报错:command not found
这不是 VSCode 设置错了,而是它启动时没读到你刚配好的 PATH。必须彻底退出所有 VSCode 进程(macOS 在 Dock 右键选「退出」,Windows 在任务管理器确认 Code.exe 已结束),再重新双击图标启动。
- 先在系统终端(不是 VSCode 里的)执行
which node(macOS/Linux)或where node(Windows),确认路径指向你安装的 Node(比如/usr/local/bin/node或C:Program Files odejs ode.exe) - 重启 VSCode 后,立刻按
Ctrl+`打开内置终端,输入node -v—— 这次的结果才代表它真能调用 - Windows 用户装完 Node.js 后若仍报错,大概率是安装时没勾选
Add to PATH;macOS 用官网 pkg 安装的,可能需要手动把/usr/local/bin加进~/.zshrc
运行单个 .js 文件最稳的方式
别依赖右上角 ▶️ 按钮或 Code Runner 插件的“Run Code”,它们默认行为不透明,容易在 ES Module 场景下报 Cannot use import statement outside a module。
根据 package.json 中的 engines 字段自动检测 Node.js 版本需求,未安装 nvm 时自动安装并切换至对应版本。支持 Windows、macOS、Linux。适用于 Node.js 项目开发、版本切换和环境配置。
- 确保当前终端工作目录就是该文件所在目录,或用相对路径:比如
node ./src/utils/test.js - 如果文件用了
import/export,需检查项目根目录package.json是否有"type": "module";没有的话,Node 默认按 CommonJS 解析,import就会直接报错 - 文件扩展名也要匹配:ESM 下推荐用
.mjs,或者显式加"type": "module",否则__dirname、require等 API 不可用
调试时 launch.json 必须配 runtimeExecutable
VSCode 调试器默认按 PATH 顺序找 node,但你终端里跑的和调试器调用的可能是两个不同版本(比如 nvm 切换的版本),导致断点不触发、process.execPath 输出路径对不上。
- 在项目根目录建
.vscode/launch.json,显式指定路径:"runtimeExecutable": "/usr/local/bin/node"(macOS/Linux)或"runtimeExecutable": "C:\Program Files\nodejs\node.exe"(Windows) - 配合
console.log(process.execPath)验证:调试时打印的路径是否和runtimeExecutable一致 - 想快速验证某段逻辑又不需要断点?直接用终端
node filename.js,比任何插件都干净可控
最常被忽略的是:改完环境变量后没彻底退出 VSCode,导致内置终端始终读不到新 PATH;还有就是 ESM 项目里漏了 "type": "module",结果 import 语句在终端能跑、在调试器里却报错——这两个点卡住的人最多。










