VSCode:终端使用与启动/调试器不同的nodejs版本

问题描述

我知道关于Visual Studio Code使用的nodejs版本有很多问题,但是没有一个有帮助,而且我注意到一个非常特殊的差异:

如果我在vscode中运行终端,我会看到新版本的node:

Node version shown in terminal

但是,一旦启动调试器( F5 ),它就会调用节点的 old 版本:

Node version launched

我已经检查过,并且在我的runtimeExecutable中指定runtimeVersionlaunch.json(但我不想这么做)。

无奈之下,我尝试删除/opt/node-v8.12.0-*,然后 F5 导致错误在PATH上找不到运行时'节点'-但显然可以在终端中!

那么vscode怎么可能找到两个不同版本的nodejs?

解决方法

啊哈!在两次尝试之间我关闭自己的VSCode窗口时,我没有关闭系统上的每个VSCode窗口(即使在多个工作区中)。

大概是VSCode(我在Linux上使用的是1.40.2)会在首次启动时检测到节点的位置/版本,除非您关闭了所有vscode实例(关闭所有窗口,或更严重的是killall code。)

那是我永远不会回来的一个小时,希望这对其他人有帮助。 :)