即使在系统路径中,也无法在PowerShell中调用npm

问题描述 投票:0回答:1

这是我的路径:

PS> $Env:Path
C:\Python27\;C:\Python27\Scripts;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;D:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\dotnet\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;D:\cmder;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\bin;C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\lib;D:\Program Files\nodejs\;C:\Users\caio1\AppData\Local\Microsoft\WindowsApps;%NVM_HOME%;%NVM_SYMLINK%;C:\Program Files\Java\jdk1.8.0_221\bin;C:\gradle;C:\android-sdk\tools\bin;;C:\Users\caio1\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\caio1\AppData\Roaming\np

请注意以下与NodJS相关的条目:

C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\bin
C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\lib
D:\Program Files\nodejs\

但是当我键入npm -v时,Powershell抛出此错误:

Program 'npm' failed to run: No application is associated with the specified file 
for this operation.
At line:1 char:1
+ npm
+ ~~~.
At line:1 char:1
+ npm
+ ~~~
    + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
    + FullyQualifiedErrorId : NativeCommandFailed
node.js windows powershell npm path-variables
1个回答
0
投票

tl; dr

  • Either:从$env:PATH变量中删除以下条目。
C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\bin
C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\lib
  • :将npm调用为npm.cmd,将node调用为node.exe

您的症状暗示以下内容:

  • $env:PATH变量中有一个目录,其中包含一个名为just npm-没有文件扩展名的文件 ...

  • 和[>]该目录不包含具有相同文件但具有可执行文件扩展名的文件,例如.cmd.exe ...

  • [和

  • 该目录在$env:PATH中列为[[first,在npm文件with可执行扩展名的任何其他目录之前,例如npm.cmd,...] >[在Windows上的普通NodeJS安装中(默认情况下安装在$env:ProgramFiles\NodeJs中,安装文件夹中包含用于调用npm的npm.cmd批处理文件,以及在同一文件夹中仅名为npm的Unix shell脚本-

    没有文件扩展名。

[npm.cmd优先于无扩展名的npm,因此仅调用npm即可按预期工作。

C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\bin是包含

Linux

安装的NodeJ的目录。在Linux安装中,显然不需要

批处理文件

,因此仅存在无扩展名的npm Unix Shell脚本。由于此目录位于D:\Program Files\nodejs值中的常规NodeJS安装目录($env:PATH

之前

,因此,PowerShell尝试在提交npm时调用无扩展名的Unix Shell脚本,这-失败。特别是,由于npm文件没有

executable

文件扩展名,PowerShell将该文件作为document而不是可执行文件来调用,并且由于没有在Windows中注册任何应用程序而无法执行此操作(图形)外壳程序(文件资源管理器),用于打开没有文件扩展名的文档。
© www.soinside.com 2019 - 2024. All rights reserved.