小编cod*_*iko的帖子

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

我按照以下步骤在 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 …

debugging node.js visual-studio-code windows-subsystem-for-linux

1
推荐指数
1
解决办法
2165
查看次数