必须从wsl终端执行code .启动vscode,否则不加载~/.bashrc或~/.zshrc中的nvm/nvs初始化逻辑,导致内置终端无法识别node;项目文件也须置于wsl原生路径(如/home/xxx/project),而非/mnt/c/下。

VSCode 在 WSL 下找不到 node,不是插件没装、不是设置没开,而是它根本没加载 WSL 的 shell 环境变量——code . 必须从 WSL 终端里执行,否则 ~/.bashrc 或 ~/.zshrc 里的 nvm/nvs 初始化逻辑压根不运行。
必须从 WSL 终端启动 VSCode,否则 PATH 不生效
Windows 开始菜单、桌面快捷方式、甚至 explorer.exe 双击打开的 VSCode,都绕过了 WSL 的 shell 初始化流程。内置终端(Ctrl + `)里 node -v 报错,就是最直接证据。
- 关掉所有 VSCode 窗口,先执行
wsl --shutdown清掉残留实例 - 进项目目录,运行
code .—— 这条命令必须在 WSL 终端(如 Ubuntu)里敲 - 打开后,在内置终端里立刻验证:
which node应输出类似/home/xxx/.nvs/default/bin/node,而不是空或C:\路径 - 如果
which node无输出,检查~/.bashrc末尾是否含. "$NVS_HOME/nvs.sh"或export NVM_DIR+[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh";没有就补上,再重来
调试时断点不命中?launch.json 的 program 必须指向真实 JS 文件
右键单个 .js 文件点 “Debug Script”,VSCode 默认用 node 直接执行,但 ESM 项目(含 import)、TS 编译后代码、或用了打包器的项目,都会失败,报错 “Cannot launch program”。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
- 确保项目根目录
package.json有"type": "module",且launch.json中加"runtimeArgs": ["--experimental-specifier-resolution=node"] -
"program"字段不能写"${workspaceFolder}/src/index.ts"或"${workspaceFolder}/index.mjs",必须是已生成的、可被node直接加载的 JS 文件,例如"${workspaceFolder}/dist/index.js" - 如果用了
nodemon或ts-node,别在launch.json里设"runtimeExecutable"——VSCode 调试器只认原生node,这类工具应改用tasks.json启动
code-runner 插件跑脚本乱码或卡死?它根本不处理模块类型和输入流
code-runner 默认命令是 node $fileName,没传编码参数、不读 package.json、也不支持 process.stdin,在 Windows 中文路径或 ESM 项目下必出问题。
- 中文路径乱码:在 VSCode 设置里搜
code-runner.executorMap,把javascript对应值改成"node -r utf-8 $fileName" - ESM 报
Cannot use import statement outside a module:改成"node --experimental-specifier-resolution=node $fileName" - 遇到
readline或process.stdin就假死:这是code-runner的硬限制,换用内置终端手动运行,或直接按F5走调试模式
最易被忽略的一点:WSL 内 Node.js 安装路径和项目文件位置必须一致。Node 在 /usr/local/bin/node,但项目放在 /mnt/c/Users/xxx/project(即 Windows 文件系统),某些 Linux 命令或符号链接会失效——所有开发文件务必放在 WSL 的 Linux 文件系统内,比如 /home/xxx/project。










