配置 Visual Studio 的任务运行程序资源管理器使用哪个 NPM?

B--*_*ian 3 visual-studio node.js npm task-runner-explorer

在通常的 Windows 命令行中我看到:

C:\Users\me\myProject\UI> node --version
v8.12.0

C:\Users\me\myProject\UI> npm --version
6.11.3

C:\Users\me\myProject\UI> where node
C:\Program Files\nodejs\node.exe

C:\Users\me\myProject\UI> where npm
C:\Program Files\nodejs\npm
C:\Program Files\nodejs\npm.cmd
C:\Users\me\AppData\Roaming\npm\npm
C:\Users\me\AppData\Roaming\npm\npm.cmd
Run Code Online (Sandbox Code Playgroud)

现在我正在使用 Visual Studio Professional 2017:如果我通过Tools > NuGet Packet Manager > Package Manager console打开 (Powershell) 终端,我会看到我喜欢的全局安装:

PM> pwd

Path                                                                 
----                                                                 
C:\myProject

PM> Get-Command npm

CommandType     Name                                               Version    Source                                                                                                                                           
-----------     ----                                               -------    ------                                                                                                                                           
Application     npm.cmd                                            0.0.0.0    C:\Program Files\nodejs\npm.cmd   

PM> node --version
v8.12.0
PM> npm --version
6.11.3
PM> Get-Command node

CommandType     Name                                               Version    Source                                                                                                                                           
-----------     ----                                               -------    ------                                                                                                                                           
Application     node.exe                                           8.12.0.0   C:\Program Files\nodejs\node.exe    
Run Code Online (Sandbox Code Playgroud)

但是,如果我在Task Runner ExplorerDefaults > version中进行选择,我会看到以下输出:

C:\me\myProject> cmd.exe /c npm run version --color=always
> myProject.ui@1.3.7 version C:\me\myProject
> node --version
v10.6.0
Run Code Online (Sandbox Code Playgroud)

这不是我想要的版本,也不是我在命令窗口中看到的任何安装where npm

实现这一点的唯一方法是在某处安装另一个安装,该安装是根据任务运行程序资源管理器中的路径设置而选择的。这是正确的结论吗?我还希望任务运行程序资源管理器使用全局安装,但我该怎么做?

B--*_*ian 12

正如我的同事刚刚告诉我的那样,该问题在https://github.com/madskristensen/NpmTaskRunner/issues/66中进行了描述。解决方案很简单,但前提是您知道在哪里寻找。

  1. 转到工具 > 选项 > 项目和解决方案 > Web 包管理 > 外部 Web 工具
  2. 在出现的弹出窗口中,使用箭头按钮将条目移动$(PATH)到第二个位置(它可能在列表中更靠下的位置)

Visual Studio 配置弹出窗口的屏幕截图