VSCode 中 node 命令不可用、code-runner 卡死乱码、断点不命中、LeetCode 插件报错,根本原因分别是环境变量未被继承、code-runner 默认配置不兼容 ES Module 和编码、调试器找不到源码映射或入口文件、插件依赖本地 Node 和 package.json 存在。

VSCode 跑不起来 node 命令,不是插件没装对,而是环境变量根本没生效——这是 90% 的“配置失败”真实原因。
node -v 能跑,但 VSCode 终端报 command not found
现象:你在系统终端(Terminal.app / cmd / PowerShell)里输入 node -v 能正常输出版本号,但在 VSCode 内置终端里执行却提示 command not found: node。
本质是 VSCode 启动时没加载 shell 的初始化文件(比如 ~/.zshrc 或 ~/.bash_profile),导致它看不到你手动加的 PATH。
- macOS/Linux:检查
~/.zshrc(或~/.bash_profile)是否包含类似export PATH="/usr/local/bin:$PATH";Homebrew 安装的 Node 默认路径就是/usr/local/bin - Windows:安装 Node.js 时必须勾选
Add to PATH;若漏选,需手动把C:\Program Files\nodejs\加进系统环境变量的Path - 重启 VSCode 前,先关掉所有窗口(包括托盘进程),再用命令行启动:
code --no-sandbox(macOS)或直接双击图标(Windows),避免继承旧 shell 环境
code-runner 插件运行 JS 文件卡死或乱码
现象:点右键 → Run Code,终端无输出、假死,或中文显示为 。
code-runner 默认用 node $fileName 执行,但它不处理编码、不转发 stdin、也不适配 ES Module 语法。
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- Windows 下加
-r utf-8参数防乱码:"node -r utf-8 $fileName" - 启用
import/export语法时,补上实验性解析参数:"node --experimental-specifier-resolution=node $fileName" - 别用它跑含
process.stdin的交互式脚本(比如 LeetCode 输入模拟),这类脚本必须进终端手动执行或走调试器
断点不命中,“Cannot launch program because corresponding JavaScript cannot be found”
现象:在 app.js 打了断点,按 F5 启动调试,控制台报错,且调试器直接退出。
VSCode 的 vscode-js-debug 调试器找不到源码映射或入口文件,常见于以下场景:
- 用了
import但没配"type": "module"到package.json,Node 按 CommonJS 解析导致路径错乱 - 代码经 TypeScript 编译或 Webpack 打包后,原始
.ts文件路径与生成的.js不一致,source map 没正确生成或未被识别 -
launch.json中program字段指向错误——比如写成"./src/index.js",但实际文件在./index.js
LeetCode 插件运行报错 “No valid session found” 或本地测试失败
现象:装了 LeetCode 插件,登录成功,但点击 “Run Code” 报错,或本地生成的测试用例无法执行。
核心依赖是 Node.js 运行时 + 正确的工程结构,插件本身不带运行环境。
- 确保项目根目录下有
package.json(哪怕只是空的{}),否则插件可能无法定位执行上下文 - LeetCode 插件默认用
node执行生成的 JS 文件,所以node -v在 VSCode 终端可用是前提 - 部分题目模板含
require("fs")或读取标准输入,需确认插件配置中是否启用了enableJavaScript和useLocalNode选项(在插件设置里搜)
真正卡住人的,从来不是“怎么装”,而是环境变量是否被 VSCode 正确继承、package.json 是否存在、以及调试器能否准确匹配源文件路径——这三个点没对齐,其他配置全白搭。


















