56

我在 Windows 8 机器上从命令行运行 Grunt 时遇到问题。

我的研究表明最常见的解决方案是安装 grunt-cli,因为 Grunt 不再是全局的。我还需要确保我确实安装了 Grunt 任务运行程序,因为它没有与 grunt-cli 一起安装。

其他解决方案指向 PATH 系统环境变量,但这似乎是我所期望的:

C:\Users[用户名]\AppData\Roaming\npm

完成所有这些操作后,我仍然在 CLI 中收到“'grunt' 未被识别为内部或外部命令、可运行程序或批处理文件”错误消息。我尝试了以下方法,每次尝试后都卸载所有内容:

  • 全局安装 grunt-cli (npm install -g grunt-cli),然后在我想使用的目录级别 grunt (npm install grunt)
  • 同上,但安装顺序颠倒
  • 与上述两者相同,但使用管理员命令提示符

我错过了一些明显的东西吗?

4

11 回答 11

63

在几台不同的 Windows 8 机器上,我对 grunt 没有任何问题。

如果打开文件夹:C:\Users\[username]\AppData\Roaming\npm

你有grunt.cmd在这个文件夹中命名的文件吗?

如果不是,我可能会再试npm install -g grunt-cli一次,也许是从提升的命令提示符开始。

如果它存在并且您C:\Users\[username]\AppData\Roaming\npm在 PATH 环境变量中有,那么从命令提示符下键入 grunt 应该可以工作。

愚蠢的问题,您是否尝试过关闭命令提示符并打开一个新的?

于 2013-10-02T11:50:41.580 回答
37

确认您PATH是正确的(并且没有搞砸)。只需PATH从命令提示符键入。考虑到您所描述的错误和您所采取的步骤,真的没有其他解释是有意义的。

通常,如果安装正确并且已正确添加到系统路径,则使用该where grunt命令会grunt.cmd在您的路径中找到。npm

于 2013-10-02T13:03:07.517 回答
16
  1. 关闭所有命令提示符实例。
  2. 启动一个新的命令提示符实例。
  3. 键入PATH Enter并验证是否C:\Users\Username\AppData\Roaming\npm是路径的一部分。
  4. 如果没有,您需要注销并重新打开
    或者关闭命令提示符并重新启动该explorer过程。
  5. 在命令提示符中,键入where grunt Enter
    如果它报告你很好:

    C:\Users\Username\AppData\Roaming\npm\grunt
    C:\Users\Username\AppData\Roaming\npm\grunt.cmd
    
  6. 否则,如果它报告,您必须重新安装该grunt-cli软件包:

    INFO: Could not find files for the given pattern(s).
    

显然,更改PATH环境变量的程序必须广播一条WM_SETTINGCHANGE消息。当您更改变量时, Windows 的系统设置窗口会正确执行此操作PATH,但 NPM 安装程序不会。这就是为什么您必须重新启动资源管理器(或注销或重新启动,具有相同效果)。

于 2014-02-17T18:51:02.377 回答
7

我知道这已经得到解答,但我想我会为 Windows 8 提供我的分步解决方案。

我检查的第一件事是笔记本电脑环境变量中的PATH(右键单击我的计算机>属性>高级系统设置>环境变量)

它没有在那里列出,所以我在用户变量中添加了一个新变量(所以它只针对我的用户帐户)

在新的用户变量提示中,我输入了以下内容;

Variable Name: PATH

Variable Value: %USERPROFILE%\AppData\Roaming\npm

退出命令提示符,repoened,导航到我的项目目录并尝试grunt再次运行......成功!

于 2014-06-17T00:09:32.013 回答
5

我遇到过同样的问题。

我尝试了不同的东西:

  • 重启电脑
  • 删除 grunt 文件夹并运行

npm install -g grunt -cli

没用。

终于试过了:

npm install -g grunt-cli

工作完美。

试过了

在哪里咕噜

我看到了 2 个发现它的位置。

于 2014-05-29T18:02:16.260 回答
4

我在 Windows 8 上遇到了同样的问题

我已将“%APPDATA%\npm”添加到路径变量中。它一直运行良好。

于 2015-08-18T04:34:18.677 回答
1

有时 NPM 安装会破坏基本的 Windows 路径。我通常有一份我自己版本的 PATH 单独维护。每周或在某些安装中,我手动配置和更新 %PATH% 变量。

基本上 Grunt.cmd 不能通过 %PATH% 变量使用。

于 2013-11-06T16:03:12.820 回答
1

我在 Windows 8 上遇到了问题,在安装 grunt-cli 后,当我尝试检查grunt -vwhere grunt. 因此,我已将此路径添加到环境 PATHC:\Program Files (x86)\Git\local并从该文件夹运行 grunt.cmd(您需要在此处查看 node_modules 文件夹)。重新加载我的终端后,一切都开始工作了。

于 2014-10-22T20:49:25.837 回答
1

我也遇到了同样的情况,解决方案是:你安装了 2 个不同版本的 Node.JS 吗?也许是Nodist?这意味着您可能安装了两次 NPM,这会将命令安装到 2 个不同的文件夹中:一次进入 C:\Users\<user>\AppData\Roaming\npm和一次进入C:\dev\nodist\bin\bin.

C:\dev\nodist\bin\bin不在我的路径变量上,所以我添加了它,并删除了我不想使用的 Node.JS 版本。

于 2015-03-18T11:16:37.007 回答
0

如果您没有由 npm 创建的 grunt.cmd 文件,请确保您的主目录中没有.npmrcbin-links=false ,其中包含: 。

于 2015-05-16T20:56:08.960 回答
0

在收到大量“'grunt' 不被识别为内部或外部命令”错误后,我在 Windows 10 上通过转到路径并添加 C:\Users\Username\AppData\Roaming\npm 解决了这个问题

于 2020-07-27T21:50:53.117 回答