Node.js 无法在PowerShell中调用npm,即使它在系统中';s路径
这是我的路径:Node.js 无法在PowerShell中调用npm,即使它在系统中';s路径,node.js,windows,powershell,npm,path-variables,Node.js,Windows,Powershell,Npm,Path Variables,这是我的路径: 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:
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
请按顺序注意以下与NodeJS相关的条目:
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引发以下错误:
程序“npm”无法运行:没有与指定文件关联的应用程序
为这次行动。
第1行字符:1
+npm
+ ~~~.
第1行字符:1
+npm
+ ~~~
+类别信息:ResourceUnavailable:(:)[],ApplicationFailedException
+FullyQualifiedErrorId:NativeCommand失败
tl;博士:
- 或者:从
变量中删除以下条目$env:PATH
C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows\u 79rhkp1fndgsc\LocalState\rootfs\home\caiodmingos\.nvm\versions\node\v10.16.3\bin
C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows\u 79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\lib
- 或者:调用
asnpm
和npm.cmd
asnode
node.exe
您的症状包括以下几点:
- 在
变量中有一个目录,其中包含一个名为$env:PATH
的文件,没有扩展名npm
- 而且该目录也不包含具有相同扩展名的文件,而是包含可执行文件扩展名的文件,例如
或.cmd
.exe
- 并且该目录在
中列在第一位,然后是具有可执行扩展名的$env:PATH
文件的任何其他目录,例如npm
npm.cmd
$env:ProgramFiles\NodeJS
中)中,安装文件夹包含一个npm.cmd
批处理文件,用于调用npm,并在名为justnpm
的同一文件夹中包含一个Unix shell脚本,但没有扩展名
npm.cmd
优先于扩展名lessnpm
,因此只调用npm
就可以了
C:\Users\caio1\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows\u 79rhkp1fndgsc\LocalState\rootfs\home\caiodomingos\.nvm\versions\node\v10.16.3\bin
是一个包含Linux节点安装的目录
在Linux安装中,显然不需要批处理文件,因此只存在一个无扩展名的npm
unixshell脚本
由于在$env:PATH
值中,此目录位于常规NodeJS安装目录(D:\Program Files\NodeJS
)之前,因此PowerShell在您提交npm
时会尝试调用无扩展名Unix shell脚本,这是意料之中的失败
具体地说,由于
npm
文件没有可执行文件扩展名,PowerShell将其作为文档而不是可执行文件调用,并且由于没有向Windows(图形)shell(文件资源管理器)注册任何应用程序,因此调用失败用于打开没有文件扩展名的文档。基本问题是npm是否安装在上述路径中?在我的简短搜索中,默认文件夹应该是C:\Program Files\nodejs\node\U modules\npm,但path变量中只有D:\Program Files\nodejs。@OlafReitz:No,C:\Program Files\nodejs
(或等效项)是正确的路径条目npm.cmd
位于该文件夹中。我很高兴听到这个消息,@CaioDomingos。感谢您接受我们的建议。