对于一些Windows用户,“grunt”不被识别为内部或外部命令

48

Grunt在所有Windows用户中都无法工作。当我运行npm install命令时,一些用户会遇到一些问题,输出以下消息。

E:\Worksapce\web>npm install
npm WARN package.json registers@4.0.0 No repository field.

当我尝试运行npm install -g grunt-cli时,我认为它执行成功了。

E:\Worksapce\web>npm install -g grunt-cli
npm http GET http://registry.npmjs.org/grunt-cli
npm http 304 http://registry.npmjs.org/grunt-cli
npm http GET http://registry.npmjs.org/nopt
npm http GET http://registry.npmjs.org/findup-sync
npm http GET http://registry.npmjs.org/resolve
npm http 304 http://registry.npmjs.org/nopt
npm http 304 http://registry.npmjs.org/resolve
npm http 304 http://registry.npmjs.org/findup-sync
npm http GET http://registry.npmjs.org/abbrev
npm http 304 http://registry.npmjs.org/abbrev
npm http GET http://registry.npmjs.org/glob
npm http GET http://registry.npmjs.org/lodash
npm http 304 http://registry.npmjs.org/glob
npm http 304 http://registry.npmjs.org/lodash
npm http GET http://registry.npmjs.org/inherits
npm http GET http://registry.npmjs.org/minimatch
npm http 304 http://registry.npmjs.org/minimatch
npm http 304 http://registry.npmjs.org/inherits
npm http GET http://registry.npmjs.org/lru-cache
npm http GET http://registry.npmjs.org/sigmund
npm http 304 http://registry.npmjs.org/lru-cache
npm http 304 http://registry.npmjs.org/sigmund
C:\Users\user1234\AppData\Roaming\npm\grunt -> C:\Users\user1234\AppData\Roaming
\npm\node_modules\grunt-cli\bin\grunt
grunt-cli@0.1.13 C:\Users\user1234\AppData\Roaming\npm\node_modules\grunt-cli
+-- resolve@0.3.1
+-- nopt@1.0.10 (abbrev@1.0.5)
+-- findup-sync@0.1.3 (lodash@2.4.1, glob@3.2.11)

但是当我运行grunt时,我会得到这样的错误信息:

E:\Worksapce\web>
E:\Worksapce\web>grunt
'grunt' is not recognized as an internal or external command,
operable program or batch file.

我的package.json是这样的。

{
  "author": "Company",
  "name": "registers",
  "version": "4.0.0",
  "homepage": "http://abcd.se",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.4",
    "grunt-contrib-jshint": "~0.9.2",
    "grunt-contrib-watch": "~0.6.1",
    "grunt-contrib-less": "~0.11.0",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-copy": "~0.5.0",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-uglify": "~0.4.0",
    "grunt-ngmin": "0.0.3",
    "grunt-contrib-jasmine": "~0.5.2"
  }
}

另一个用户成功地执行了grunt而没有任何问题。这仅适用于一些用户。

有人能告诉我出了什么问题吗?

6个回答

91

Grunt不再全局安装。请查看入门页面获取更多信息。

以下命令可以帮助您修复此问题;

npm install -g grunt-cli

问题在于grunt不再全局安装(请参阅起始指南:http://gruntjs.com/getting-started),因此,这个答案是正确的。 - teobais

22
您的日志显示grunt命令在全局目录中创建了。错误还表明C:\Users\mc862634\AppData\Roaming\npm\未添加到您的路径中。
如果确实缺少\AppData\Roaming\npm位置,请检查您的PATH并确保已添加该位置。
最简单的方法是打开命令提示符并键入PATH
可以参考此StackOverflow问题:Grunt on Windows 8: 'grunt' is not recognized

17

在Windows 8上,Grunt需要将以下内容添加到PATH中:

C:\Users\your_username\AppData\Roaming\npm

在某些系统上,路径中可允许的字符数是有限制的,这可能导致即使运行npm install -g grunt-cli后,grunt所需的正确路径仍未被添加。某些设置(例如已安装的某些程序)可以从PATH中安全地移除,因为它们通常作为故障转移而存在,并且经常不需要。如果您遇到此问题:

  • 备份您的PATH变量(打开“此电脑” > 右键单击 > 属性 > 高级系统设置 > 环境变量 > “编辑”当前用户的“Path”用户变量,复制“变量值”,并将其保存在其他地方)
  • PATH中删除一些值,并添加路径C:\Users\your_username\AppData\Roaming\npm

另外,在安装了Grunt CLI并添加路径后,请确保关闭任何打开的命令窗口并重新打开它们,然后再尝试运行Grunt


问题解决了!这些步骤在Windows 10上也起作用。 - Muhammad Hani

4

Grunt-CLI已安装在%AppData%\npm中,因此最好将其添加到您的%PATH%中的目录是:

%AppData%\npm

2

请执行以下命令安装grunt:npm install grunt -g (或) npm install -g grunt-cli

请检查您计算机的环境变量路径,它应该包含AppData路径。例如:E:\$APPDATA\npm\;

我的电脑 -> 右键点击 -> 属性 ->高级系统设置 -> 环境变量 -> Path


1
如果有使用Windows XP的开发人员遇到类似问题,您需要更改“路径”条目。 : C:\Users\change_username\AppData\Roaming\npm\grunt : C:\Documents and Settings\change_username\Application Data\npm

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