“npm”无法识别为内部或外部命令,可执行程序或批处理文件。

8

我遇到了以下错误:

'npm' is not recognized as an internal or external command, operable program or batch file.

当我执行以下命令时:

npm install -g bower polyserve

虽然我已经下载了Node.js

6个回答

16

我认为您没有在系统属性的环境变量中定义nodejs的路径。

添加 ;C:\Program Files\nodejs\ (您安装nodejs的目录路径)

将其添加到"用户变量"部分的Path变量末尾,在系统属性的环境变量中。

然后重新打开命令提示符,再次键入npm。现在应该能工作了。希望这有所帮助。

如果仍无法正常工作,您可以再做一件事情:在安装node之后重启计算机。


C:\Users\Owner1\AppData\Roaming\npm是什么?这个也被安装了。 - Phillip Senn
这是通过-g命令安装的任何npm包的存储位置。例如,您正在发出“npm install -g bower polyserve”命令。这里的-g表示系统上的全局路径,该全局路径为C:\ Users \ Owner1 \ AppData \ Roaming \ npm。如果您在项目文件夹中发出npm命令,则所有包都将安装在该项目目录中。请查看此链接https://mysoftwarenotes.wordpress.com/2012/02/07/installing-npm-node-package-manager-on-windows/ - Vikas Sharma

9

设置环境变量中的node.js路径。

  1. 右键单击我的电脑 -> 属性 -> 高级系统设置 -> 环境变量 -> 选择并编辑系统变量中的"Path"变量。
  2. 在路径中添加 C:\Program Files\nodejs\;
  3. 重启命令提示符
  4. 在新的控制台窗口中键入node --version,版本号应作为响应显示。

我曾经安装和卸载过Node.js,最终在阅读了您的答案后发现问题出在我没有重新启动命令提示符。 - vainquit

3
我建议使用https://github.com/coreybutler/nvm-windows,而不是直接安装一个Node版本,因为在不同的项目中切换Node版本很常见。以下是设置它的说明。
以“管理员身份运行”选项打开PowerShell(需要管理员角色来创建符号链接)。
检查是否已安装nvm:
nvm version

如果没有安装,请按照https://github.com/coreybutler/nvm-windows#node-version-manager-nvm-for-windows上的说明进行安装。
如果已经安装了nvm,请检查nodejs是否在系统路径中:
$Env:Path

如果 nodejs(可能在“C:\Program Files\nodejs”)不在路径中,但是符号链接文件 'nodejs' 存在于目录 'C:\Program Files' 中,则请按照 Vikas Sharma 的描述将其添加到路径中。
如果“C:\Program Files\nodejs”在路径中且目录中不存在符号链接文件,则使用以下命令列出已安装的 node 版本:
nvm ls

然后使用以下命令(需要管理员权限)创建符号链接:
nvm use <node version>

检查 npm 是否正常工作:
npm --version

1
我遇到了同样的问题。环境变量都已设置(如上方用户所建议)。我使用的是Node 8.9.4版本。将Node版本更改为8.16.0对我起了作用。

1
如果你在Windows系统上工作,你需要设置系统环境,就像上面的方法一样。 我建议使用nvm来设置Node环境。 最近我使用了nvm,它可以通过bash动态切换Node和npm的版本。
NVM的源代码在这里 https://github.com/coreybutler/nvm-windows/releases 安装后,可以在命令行上安装动态版本的Node。
nvm install node_version
nvm use node_version

希望能对你有所帮助!

0
如果你的电脑已经安装了node.js但没有找到npm(就像我的情况一样),那么只需要运行修复选项即可。如果你已经下载了node.js,只需在Windows系统上运行修复选项,它会自动完成剩下的步骤。修复完成后关闭cmd窗口,重新打开并通过运行指令进行测试。
npm -v 

现在它将显示npm版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接