节点.js在VScode远程WSL上调试,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);

console.log上有断点

然后在调试选项卡上单击">创建启动。json文件"这给了我默认的配置:

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

但是当我按下F5时,活动栏调试按钮使*光点*但没有发生任何事情,也没有出现任何选项卡上的错误消息(集成终端,调试控制台,问题,输出)

只有当我指定vscode在哪里获得节点二进制路径添加到配置:

"runtimeExecutable": "/home/user01/.nvm/versions/node/v14.18.0/bin/node"

然后我让我的代码运行,并尊重我的断点。

我认为这可能是vscode无法在非交互式shell中找到路径的问题,所以我尝试在这里创建一个/etc/profile.d/nvm-autoload.sh,如下所示:

# Enable nvm if available
if [ -f ~/.nvm/nvm.sh ]; then
source ~/.nvm/nvm.sh
fi

runtimeExecutable修复创建复杂,如果我想调试typescript文件,因为它需要tsc: build作为preLaunchTask

我可以沿着tsc -w运行我的typescript调试器,并获得preLaunchTask的骑行,但我觉得有些东西是错误的地方,这是困扰我…

这个问题是由于我从Windows开始菜单启动Vscode时没有正确设置环境变量。

要使其工作,我必须从wsl终端启动vscode。

cd ~/my/project
# if needed
nvm use
code .

launch.json上述作品

最新更新