在 VScode 远程 WSL 上调试 Node.js,VSC 找不到节点二进制文件

cod*_*iko 1 debugging node.js visual-studio-code windows-subsystem-for-linux

我按照以下步骤在 wsl 上安装了 nodejs:
https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl

然后调试 helloworld 示例,如下所示: https: //code.visualstudio.com/docs/nodejs/nodejs-tutorial#_debugging-your-node-application

所以我只是helloworld.js在 vscode 工作区目录的根目录下包含以下文件:

var msg = 'Hello World';
console.log(msg);
Run Code Online (Sandbox Code Playgroud)

有断点console.log

然后在调试选项卡上单击“创建 launch.json 文件”,这给了我默认配置:

        {
            "type": "pwa-node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}/helloworld.js"
        }
Run Code Online (Sandbox Code Playgroud)

但是,当我按下F5活动栏调试按钮时,会出现一个*blip*,但没有任何反应,并且任何选项卡上都没有出现错误消息(集成终端、调试控制台、问题、输出)

仅当我通过添加到配置来指定 vscode 从何处获取节点二进制路径时:

"runtimeExecutable": "/home/user01/.nvm/versions/node/v14.18.0/bin/node"
Run Code Online (Sandbox Code Playgroud)

然后我开始运行我的代码并遵守我的断点。

我认为这可能是 vscode 无法在非交互式 shell 中找到路径的问题,所以我尝试按照此处找到的方式创建一个/etc/profile.d/nvm-autoload.sh具有以下内容的路径:

# Enable nvm if available
if [ -f ~/.nvm/nvm.sh ]; then
  source ~/.nvm/nvm.sh
fi
Run Code Online (Sandbox Code Playgroud)

但还是没有...

如果我想调试打字稿文件,因为它需要runtimeExecutable 作为tsc: build一个preLaunchTask

我可以运行我的打字稿调试器并tsc -w使用它preLaunchTask,但我觉得某个地方出了问题,这让我烦恼......

cod*_*iko 7

该问题是由于我从 Windows开始菜单启动 Vscode时未正确设置环境变量所致。

为了使它工作,我必须从 wsl 终端启动 vscode。

cd ~/my/project
# if needed
nvm use
code .
Run Code Online (Sandbox Code Playgroud)

然后launch.json上面提到的作品