ng无法识别为内部或外部命令


201

运行Windows 7 Professional 32位。

我尝试npm install -g angular-cli在普通或管理员下运行。 2016-06-23_14h46_40

我也尝试将其添加到PATH:下的Envirorment Variables中(C:\Users\Administrator\AppData\Roaming\npm\node_modules\angular-cli\bin\ng),但也没有成功。
2016-06-23_14h56_48

我究竟做错了什么?


6
您确定要在目录C:\Users\Administrator\AppData\Roaming\npm\node_modules\angular-cli\bin)中%PATH%吗?
毕芬

我不确定。我尝试了一下,只是想看看“ ng”是否有效,但事实并非如此。
克里斯蒂安·马斯卡卢

您是否打开了新的命令提示符?环境变量不会传播到正在运行的环境变量。尝试echo %PATH%查看它是正确的。
毕芬

2
好吧,检查%PATH%包含的目录(以分号分隔的列表)是否包含ng.exe
毕芬

2
我找到了解决该问题的解决方案stackoverflow.com/a/46874999/7968316
Rixwan,

Answers:


236

对我来说,它适用于:

npm run ng <command>

10
您知道为什么会这样吗?我们如何摆脱“ npm run”?
Pratik Gandhi

5
但这会在ng build之后忽略任何其他参数
hakuna 18-4-10

要通过ng命令直接运行,您可以@angular/cli使用npm link @angular/cli
Asad Shakeel,

3
@PratikGandhi这是因为cmd只能运行环境变量中指定的命令(在这种情况下为npm)。当您在系统中全局安装节点时,将添加此路径。当您将完整路径添加C:\Users\<user>\AppData\Roaming\npm\node_modules\@angular\cli\bin\ng到环境变量并重新运行时cmd,它将接受ng为命令。或者,您也可以使用Node.js命令提示符运行ng命令。
MM

218

我按照下图解决了这个问题:

在cmd中运行

 npm install -g @angular/cli

然后

(在Windows 10中打开)控制面板\所有控制面板项目\系统或按照图示

第1步:

在此处输入图片说明

第2步 :

在此处输入图片说明

第三步:

在此处输入图片说明

第4步:

在此处输入图片说明

第5步:

在此处输入图片说明

最后,必须重新启动计算机。


您以错误的方式得到了Angular和NG注释(以res表示;)
Shaheen K

1
就我而言,我只需要将路径添加到npm。
Kieran

41
您不必最后重新启动计算机,只需重新启动命令提示符即可。
Aravindh Gopi '18年

或者您可以注销(以Win 10语言“注销”),然后重新登录。这将“重置”您的所有环境变量。但这是小土豆。。。在此实际答案旁边。赞成。谢谢。
granadaCoder

C:\Users\<YOURUSER>\AppData\Roaming\npm不是Angular路径,而是npm路径,因此,如果将此路径添加到环境变量中,那么使用-g标志安装的所有npm软件包都将在命令行上可用(不仅是ng)。
PinguinoSod19年

113

添加C:\Users\DELL\AppData\Roaming\npm到系统变量Path为我工作。请找到“ npm”的适当文件路径

另外,检查是否已将angular-cli\bin路径添加到path变量。


5
也尝试重新启动PC。之后,ng命令开始工作。
MateuszMigała17年

1
查找文件“ ng.cmd”的路径。使用路径更新环境变量PATH。
珍娜娜(Jnana)

4
这在Windows 10上对我有用,但是我添加了“%USERPROFILE%\ AppData \ Roaming \ npm”来覆盖从其自己的用户配置文件中提取的多个潜在用户。
Tim McElwee

2
%AppData%\npm将扩展为@TimMcElwee和@sabari的值,并且与用户和机器无关。
ps2goat

将\ npm文件夹添加到路径变量中为我修复了它
Kaspazza

68

我正在使用WIN 10,只需解决此问题即可。在cmd中输入以下代码:

npm config获取前缀

并将从顶部获得的路径复制并粘贴到计算机环境变量->用户变量框->路径->编辑-C:\ Program Files \ nodejs \ node_global,您的路径可能会有所不同。

单击确定,然后重新打开您的cmd窗口,输入ng version,然后可以使用!干杯!


奇迹般有效!MySQL Shell覆盖了我的用户路径变量。::
Hamza Khanzada

39

只需打开命令提示符(以管理员身份运行)。确保node --v为6.9.0或更高,并且npm --v为3.0.0 r。

之后,运行以下命令:

npm install -g @angular/cli

一旦安装了角度。您可以在路径中看到角度cli的条目

C:\Users\Dell\AppData\Roaming\npm\node_modules\@angular

然后尝试ng help。它会工作。


26

1)在命令提示符下输入以下命令

npm install -g @angular/cli

2)确保C:\ Users \ _username_ \ AppData \ Roaming \ npm此路径未隐藏

3)添加C:\ Users \ _username_ \ AppData \ Roaming \ npm

C:\ Users \ _username_ \ AppData \ Roaming \ npm \ node_modules @ angular \ cli \ bin到两个环境变量path

4)打开新的命令提示符,然后键入ng help。它会工作。


在获得Windows 10计算机的管理员权限并单击以管理员身份运行打开命令窗口之前,我看不到AppData目录。
罗伯·史蒂文斯

18

用命令

npm install -g @angular/cli@latest

它工作正常,我现在可以运行ng命令。


16

我按照以下步骤在Windows 10中解决了此问题:

  1. 首先,请确保您已安装Angular CLI。您可以在下面使用它们进行安装。

npm install -g @ angular / cli @ latest

  1. 确保AppData是可见的,然后导航到下面的路径。

C:\ Users \ rkota \ AppData \ Roaming \ npm

也可以通过以下运行找到相同的路径:

npm config获取前缀

  1. 在环境变量PATH中添加上述路径,即“ C:\ Users \ rkota \ AppData \ Roaming \ npm”,并通过在命令提示符下运行路径来确保添加了该路径。
  2. 关闭命令提示符,然后尝试在下面运行:

ng --version

您将能够看到CLI版本。


14

在与其他全局模块存在相同问题之后,几天前我通过添加以下内容解决了该问题:

环境表->系统变量->路径:

C:\ Users \ Administrator \ AppData \ Roaming \ npm \ node_modules \ angular-cli \ bin; C:\ Program Files \ MongoDB \ Server \ 3.2 \ bin

注意,它后面不能有任何空格。

原来那是我的问题。


查找文件ng.cmd的路径。使用相同的路径路径更新环境变量PATH值。重新启动命令行控制台即可。
Jnana

3
“ npm config get prefix”下面的答案是正确的方法
Peter Morris

1
除非你看到ng的文件夹中ng.cmd或者Windows Command Script在类型列,要不然这纳克在这angular-cli\bin是行不通的。
Jeb50

此答案需要更新,因为现在CLI v7.0 +中的路径为C:\ Users \ UserName \ AppData \ Roaming \ npm
Hemendra,

12

最好使用NodeJS安装的命令提示符版本,而不要使用内置命令提示符。然后它将完美运行,没有任何问题。在此处输入图片说明


2
where ng在该控制台中运行可能有助于找出路径出了什么问题。这样做对我有用,因为ng在错误的用户AppData中得到了解决,因此执行了cli的错误版本。
Frederik.L,

10

执行以下行以解决ng的未找到和未定义版本的问题

npm卸载-g angular-cli

npm卸载--save-dev angular-cli

npm缓存清理

npm install -g @ angular / cli @ latest


9

如果按照上述步骤操作后仍收到错误消息。然后尝试以下。

由于它是一个节点脚本。我现在使用下面的选项创建。

节点C:\ Users \ Administrator \ AppData \ Roaming \ npm \ node_modules \ angular-cli \ bin \ ng版本

可能需要符号链接。没有进一步研究。

在进一步研究中:将路径设置为:%PATH%; C:\ Users \ Administrator \ AppData \ Roaming \ npm;

在Windows中,npm.cmd文件位于上述路径中。如果设置了上述环境变量,则可以作为ng版本ng init执行


7
  1. 打开cmd并输入 npm install -g @angular/cli

  2. 在环境变量中,在用户变量或系统变量“ Path”中添加value =C:\Users\your-user\.npm-packages\node_modules\.bin

  3. 在cmd中: c:\>cd your-new-project-path

  4. ...\project-path\> ng new my-app

    要么 ng all-ng-commands



5

当我尝试使用命令在本地安装angular cli时遇到相同的问题

npm install @angular/cli@latest

之后,我遇到了同样的问题C:\ Users \ vi1kumar \ Desktop \ tus \ ANGULAR \ AngularForms> ng -v'ng'不被识别为内部或外部命令,可操作程序或批处理文件

比我尝试在全球安装

npm install -g @angular/cli@latest

在这种情况下,它奏效了,我想知道是否无法在全球范围内安装cli?

经过研究后,我发现本文非常有希望,希望对遇到类似问题的人有所帮助

使用多个版本的Angular CLI


4

这个几乎对我有用,但是我不得不使用:%USERPROFILE%\ AppData \ Roaming \ npm。在环境变量... /系统变量/路径中

然后,当我执行CMD:“ ng -v”时,我得到了正确的角度cli响应。



4

1-安装

$ npm install -g @angular/cli

2-确定您的ng.cmd位置。

在此处输入图片说明

3-然后将此路径添加到变量中。

在此处输入图片说明


3

我在Windows 7(使用npm v3.10.8运行的64位)上遇到了相同的问题。

  1. 我按照建议的方式添加了路径:(C:\ Users .....(您的用户名)\ AppData \ Roaming \ npm \ node_modules \ angular-cli \ bin \ ng),并卸载了angular-cli。
  2. 此后,我npm cache clean按照此处的提示清除了npm缓存https://blogs.msdn.microsoft.com/matt-harrington/2012/02/23/how-to-fix-node-js-npm-permission-problems/。这样可以保证没有剩菜。
  3. npm install -g angular-clivoila 重新安装angular-cli 。

    希望可能有用!

3

尝试使用语法“ ng new”时遇到了相同的问题,并通过将现有节点版本从5.xx更新到8.xx来解决了该问题。成功更新节点后,该语法对我来说非常有效。请更新节点的现有版本。正如角度文档中明确提到的那样,这些命令要求节点版本> =6.9.x。作为参考,请检查https://angular.io/guide/quickstart。它明确指出:“通过在终端/控制台窗口中运行节点-v和npm -v来验证您至少正在运行节点6.9.x和npm3.xx。较旧的版本会产生错误,但较新的版本会很好”。


3

我在x86,Windows 7上遇到了同样的问题;

  • 卸载@ angular / cli
  • 重新安装@ angular / cli
  • 检查并验证环境变量(那里没有问题)...
  • 仍然是同一问题:

解决办法是在C .npmrc文件:\用户{USERNAME} ...更改前缀,以便它读取“PREFIX = $ {APPDATA} \ NPM” ......由于这个解决它的网站寻求帮助


3

我通过添加-我环境变量路径的%AppData%\ npm \ node_modules @ angular \ cli \ bin \路径来解决


2

就我而言,我做了以下步骤。

所有程序-> Node JS->右键单击Node.js命令提示符并选择属性,然后从下面最终副本的Target字符串中选择

/k "C:\Program Files\nodejs\nodevars.bat"

我启动了Visual Studio代码并在文件下面打开

C:\Users\gochinta\AppData\Roaming\Code\User\settings.json 并在下面给出

// Place your settings in this file to overwrite the default settings
{
  "terminal.integrated.shellArgs.windows": 
  ["/k", "C:\\Program Files\\nodejs\\nodevars.bat"]

}

现在,我ng -v在Visual Studio Code Terminal窗口中键入内容,它可以正常工作。


2

我面临着同样的问题,并且已经解决。在我的最终原因是我使用其他用户配置文件安装了节点和CLI,现在我从其他用户登录名运行ng命令。由于使用其他用户登录节点安装的节点和cli在C:\Users\&lt;user name&gt;\AppData\Roaming此路径上找不到任何东西,所以这就是我收到此错误的原因。

我运行npm install -g @angular/cli命令并重新启动计算机。一切正常。


2

将来的某个时候。适用于Windows 8.1机器。运行以下命令

npm install -g @angular/cli

注销或重新启动计算机。

这应该添加所需的env路径,而不是手动执行。


2

我还尝试通过设置环境变量path等来使用cmd,但是简单的答案是使用nodejs命令提示符。

因此,您无需设置环境变量路径或任何其他内容。当您安装nodejs时,它将通过使用我们的“ ng”命令来给出命令提示符,而无需进行任何设置。


2

由于仍然在一年又一遍又一遍地问这个问题,我也将在这里发布答案。

提示(仅在Windows上)是在路径变量右侧安排条目。

正如NPM Wiki告诉我们的那样

由于安装程序会将C:\ Program Files(x86)\ nodejs放在C:\ Users \\ AppData \ Roaming \ npm之前的PATH上,因此它将始终使用随节点安装的npm版本,而不是使用进行安装的npm版本npm -g install npm@<version>

因此,您的path变量将类似于:

…;C:\<path-to-node-installation>;%appdata%\npm;…

现在您有两种可能性:

  1. 交换两个条目,使其看起来像
…;%appdata%\npm;C:\<path-to-node-installation>;…

这将加载与npm(而不与节点)一起安装的npm版本以及已安装的Angular CLI版本。

  1. 如果您(出于某种原因)喜欢使用与节点捆绑在一起的npm版本,则将直接路径添加到全局Angualr CLI版本。在这之后你的路径变量应该是这样的:…;C:\Users\<username>\AppData\Roaming\npm\node_modules\@angular\cli;C:\<path-to-node-installation>;%appdata%\npm;……;%appdata%\npm\node_modules\@angular\cli;C:\<path-to-node-installation>;%appdata%\npm;… 为简写形式。

从现在开始对我有用。


1

我有一个相同的问题,Visual Studio Code无法在其内置终端中运行任何ng命令。

我将%AppData%\ npm添加到Windows 10中的路径中,而不必重新启动,只需关闭并重新打开VS Code,它就不会看到它。


我设置了相同的新路径,AppData\Roaming\npm\node_modules\@angular\cli\bin\ng现在可以正常工作
Abdallah Abdillah

1

安装x32版本的nodejs而不是x64版本(即使在64位Windows计算机上)。


1

对我来说,PATH环境变量有问题。我删除了与npm相关的所有路径,并在PATH 的开头添加了此文件夹:

c:\Users\<your-user-name>\AppData\Roaming\npm\

确保;路径之间。


这是正确的选择,因为Win7和10都具有ng。cmd文件在这里。
Jeb50
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.