我对nodejs完全不熟悉。我试图让nodejs在我的Windows 2008盒子上工作,以安装Karma,我将用于TDDing我的AngularJs代码。到目前为止,我已经完成了以下步骤

Install using Chocolatey ==> npm is not recognised Install using 64-bit nodejs installer from nodejs.org ==> npm is not recognised At this stage, running where npm gives me c:\User\<Username>\AppData\Roaming\npm which has nothing in it I figure out that nodejs is installed in C:\Program Files\nodejs. Opening a command prompt in this directory makes npm work fine. So I added C:\Program Files\nodejs to PATH only to get the same error again that npm is not recognized One of the github issues on nodejs repository says that I need to restart the machine and it would fix. But that has not helped so far I do see a Node.js icon in my Start -> Programms mennu which takes me to nodejs console but not sure what to do with that.

在这个过程中,我是否错过了任何重要的步骤?

Edit

我发现如果我从程序文件中打开“Nodejs命令提示符”,那么npm是可以识别的。如何让它在正常的命令提示符下工作?

Edit

在node之后,我开始在另一个应用程序中遇到类似的问题。我在超级用户上发布了这个问题,正如被接受的答案所正确指出的那样,我在我的PATH中有一个额外的引用,这导致了引用后添加的所有路径出现问题。我有一种感觉,一些Chocolatey安装添加了这句令人不安的引用,但我只是不确定是哪一个。


当前回答

你可能已经收到了回复,但这可能会帮助其他人,因为我最近也遇到了同样的问题,这就是我所做的:

Added a path for Powershell. For me, the path was C:\Windows\System32\WindowsPowerShell\v1.0 Then, I opened the command prompt with administrative privileges and ran @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin Next, choco install nodejs Restart and everything worked fine. Try opening the command prompt without admin privileges and run npm -v

欢呼。

其他回答

在尝试了我在YouTube和stackoverflow上找到的各种解决方案来解决这个问题后,所有的努力都无济于事。

我猜问题一定是因为节点必须已经移动到不同的文件夹而不是<C:\Program Files>所以我所做的是我卸载节点,然后重新安装它,一切恢复正常。

我相信这个过程之后你就会没事的。

通过命令查看npm config:

npm config list

它需要属性:“prefix”,全局“prefix”和“node bin location”。

; userconfig C:\Users\username\.npmrc
cache = "C:\\ProgramData\\npm-cache"
msvs_version = "2015"
prefix = "C:\\ProgramData\\npm"
python = "C:\\Python27\\"
registry = "http://registry.com/api/npm/npm-packages/"

; globalconfig C:\ProgramData\npm\etc\npmrc
cache = "C:\\ProgramData\\npm-cache"
prefix = "C:\\ProgramData\\npm"

; node bin location = C:\Program Files\nodejs\node.exe
; cwd = C:\WINDOWS\system32

在这种情况下,它需要将这些路径添加到环境变量PATH的末尾:

;C:\Program Files\nodejs;C:\ProgramData\npm;

当我试图使用nvm使用另一个版本的node时,出现了这个问题。我从外部安装node,然后尝试使用nvm使用另一个节点版本。这就是为什么npm无法识别的原因。所以,这就是我所做的:

删除node . js 通过NVM方式安装指定版本的节点

NVM 安装 12

使用NVM使用该版本

NVM 安装 12.22.12

添加:

;C:\Program Files\nodejs\

在“系统属性”的“环境变量”的“用户变量”部分的路径变量的末尾。

之后,重新打开命令提示符并键入

npm

这应该有用。

如果你通过服务帐户(如Visual Studio TFS构建控制器服务或任何其他后台服务)得到这个错误,请确保在安装npm后重新启动服务,因为新的PATH环境设置将不会被那些已经运行的进程拾取。我通过我的构建服务得到了同样的错误,但我已经安装了npm并在控制台中运行。