WSL+VS Code:VSCode假设`node`而不是`nodejs`二进制文件名

3
我的目标是将Windows 10 + WSL作为开发平台,使得做*IX风格的编程能够像我在OSX上进行了数年一样好。同时我还尝试了一些新的东西,包括这个新潮流的VS Code。
通过WSL + Ubuntu,我安装了nodejs包。
我在VS Code中使用JavaScript创建了一个“Hello World”。
我运行了调试命令。
“在PATH中找不到运行时'node'。请确保已安装'node'。”。
嗯,好吧。我被提示打开launch.json关闭
因此,我想到了一个解决方法,尝试为node添加一个别名nodejs
我重新启动了VS Code,尝试了同样的过程,但失败了。
然后我试着用符号链接将/usr/bin/node连接到/usr/bin/nodejs。同样的错误。
我认为这在WSL时代是一个相当标准的用例,但我没有找到一个经典的实现,也没有看到“这是不可能的!”所以,我们就这样吧 :)
2个回答

2

我使用 nvm 在Ubuntu上安装Node,但是如果您正常安装它,它也应该可以正常工作。

例如:

nvm install 9.2.0
nvm alias default 9.2.0

来自VSCode文档

如果您想在Windows的Linux子系统(WSL)中运行Node.js,则也可以使用上述方法。然而,为了使这更加简单,我们引入了一个useWSL标志,以自动配置一切,使Node.js在Linux子系统中运行,并将源映射到您的工作区文件中。

以下是在WSL中调试hello.js的最简单的调试配置: { "type": "node", "request": "launch", "name": "Launch in WSL", "useWSL": true, "program": "${workspaceFolder}/hello.js" }


2
对于后来者,完整的说明在这里:github.com/Microsoft/vscode/issues/39144。简而言之,上面的答案是正确的,但是在VS Code中必须针对每个语言子系统启用此功能。因此,虽然这适用于例如Node,但它不适用于Python。计划存在于2017-11-27,以实现WSL /非WSL使用的全局标准接口,但目前仍在进行中。 - Steven Harms

1
上述方法对我没有用,但是这个最高票的答案有效: https://askubuntu.com/questions/1065276/cannot-find-runtime-node-on-path-in-visual-studio-code-running-installed-on-u?newreg=dbdc6529203049dc9106b3b1aa6c84e6 简而言之,有两种选择。
1 - (对我有效)在VSCode终端中使用'which node'获取路径,然后将"runtimeExecutable": "insert-path-you-got-here"行添加到launch.json中。
2 - (我没有尝试过)在~/.profile中添加nvm初始化脚本(请参见链接中的其他答案)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接