根本原因是系统PATH未生效,需重启VSCode使环境变量更新;Node.js需正确添加至PATH,Code Runner不兼容ES模块需改用内置终端;调试须显式配置runtimeExecutable并验证与which node一致。

node -v 报错“不是内部或外部命令”怎么办
根本原因不是 VSCode 有问题,而是系统 PATH 没生效。VSCode 启动时读取的是启动那一刻的环境变量,改完 PATH 不重启 VSCode,内置终端照样找不到 node。
- 必须在系统终端(cmd/PowerShell/Terminal)里执行
node -v和npm -v,两者都输出版本号才算过关 - Windows 安装时没勾选
Add to PATH?手动把 Node.js 安装目录(如C:Program Files odejs)加进系统环境变量Path,注意路径不能含中文或空格 - macOS/Linux 用
nvm?确认source ~/.nvm/nvm.sh已写入~/.zshrc或~/.bash_profile,且新开终端能识别nvm - 改完环境变量后,彻底关闭 VSCode 所有窗口再重开,否则内置终端仍继承旧 PATH
为什么 Code Runner 运行 import 会报错
Cannot use import statement outside a module 这类错误,90% 是因为 Code Runner 绕过了项目上下文,直接调用 node index.js,而没读 package.json 里的 "type": "module"。
- 禁用 Code Runner 跑 Node 脚本——它适合单文件快速验证,但不兼容现代模块配置
- 改用 VSCode 内置终端(
Ctrl+`),cd 到项目根目录后手动执行node index.js,行为与部署环境一致 - 如果用了
"type": "module",确保文件扩展名是.mjs,或在package.json中明确声明,否则node默认按 CommonJS 解析
调试时断点不触发,是不是 launch.json 配错了
VSCode 自带 Node.js 调试支持,不需要额外插件,但默认生成的 launch.json 很容易踩坑,尤其当你本地有多个 Node 版本(比如 nvm 管理)。
- 务必在
.vscode/launch.json的配置中显式指定runtimeExecutable,例如:"runtimeExecutable": "/usr/local/bin/node"(macOS/Linux)或"runtimeExecutable": "C:\nodejs\node.exe"(Windows) - 不写这个字段,VSCode 会按 PATH 顺序找
node,而 PATH 里的node可能和你在终端里which node看到的不是同一个 - 加一行
console.log(process.execPath)在代码里,对比调试器输出的路径和runtimeExecutable是否一致,这是最直接的验证方式 - 调试
npm start?把"program"改成"npm","args"设为["start"],并加"console": "integratedTerminal",否则看不到 npm 输出
ESLint 和 Prettier 怎么配才不打架
装了两个插件却越格式化越乱?大概率是规则冲突没处理干净,尤其 eslint-config-prettier 没启用。
- 安装
eslint-config-prettier:运行npm install --save-dev eslint-config-prettier - 在
.eslintrc.js的extends数组末尾加上"eslint-config-prettier",它会关掉所有和 Prettier 冲突的 ESLint 规则 - 不要在
.prettierrc里设"semi": false却在 ESLint 里保留semi: ["error", "always"],这类细节必须统一 - VSCode 设置里打开
editor.formatOnSave,同时设置editor.defaultFormatter为esbenp.prettier-vscode,避免格式化引擎混用
runtimeExecutable 和 process.execPath 的一致性验证——很多人只改了 launch.json,却没去终端里确认 which node 输出的路径是否真和配置匹配。


















