这是我的路径:
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
答案 0 :(得分:0)
tl;博士:
$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
-且没有文件扩展名的文件。
并且该目录也不也包含具有相同文件但具有可执行文件扩展名的文件,例如{{1 }}或.cmd
...
,并且该目录在.exe
中排在 first 之前,在$env:PATH
与一起归档的其他任何目录之前可执行扩展名,例如npm
,...
在Windows上的正常NodeJS安装中(默认情况下安装在npm.cmd
中),安装文件夹包含一个用于调用npm的$env:ProgramFiles\NodeJs
批处理文件,以及位于同一文件夹中的Unix shell脚本,其名称仅为{ {1}}-没有文件扩展名。
npm.cmd
优先于无扩展名的npm
,因此仅调用npm.cmd
即可正常工作。
npm
是一个目录,其中包含NodeM的 Linux 安装。
在Linux安装中,显然不需要 batch文件,因此仅存在无扩展名的npm
Unix shell脚本。
由于此目录位于您的C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\bin
值中的常规NodeJS安装目录(npm
之前 之前,因此PowerShell会在您提交时尝试调用无扩展名的Unix shell脚本D:\Program Files\nodejs
,可以预测-失败。
具体来说,由于$env:PATH
文件没有扩展名 executable ,因此PowerShell会将其作为 document 而不是可执行文件来调用,并且无法执行因此,因为没有应用程序在Windows(图形)外壳程序(文件资源管理器)中注册,无法打开没有文件扩展名的文档。