我在Windows 8机器上从命令行运行Grunt时遇到问题。
我的研究表明,最常见的解决方案是安装 grunt-cli,因为 Grunt 不再是全局的。我还需要确保我实际安装了 Grunt 任务运行程序,因为它没有与 grunt-cli 一起安装。
其他解决方案指向 PATH 系统环境变量,但这似乎是我所期望的:
C:\Users[用户名]\AppData\Roamingpm
完成所有这些操作后,我仍然在CLI中收到"'咕噜咕噜'未被识别为内部或外部命令,可操作程序或批处理文件"错误消息。我尝试了以下方法,每次尝试后都卸载所有内容:
- 全局安装了 grunt-cli(npm install -g grunt-cli(,然后在目录级别安装了 grunt,我想使用它(npm install grunt(
- 与上述相同,但安装顺序颠倒
- 与上述两者相同,但使用管理员命令提示符
我错过了一些明显的东西吗?
我在几台不同的 Windows 8 机器上没有遇到任何问题。
如果打开文件夹:C:Users[username]AppDataRoamingnpm
此文件夹中是否有名为 grunt.cmd
的文件?
如果没有,我可能会再次尝试npm install -g grunt-cli
,也许是从提升的命令提示符。
如果存在这种情况,并且您在 PATH 环境变量中具有C:Users[username]AppDataRoamingnpm
,那么从命令提示符键入 grunt 应该可以。
愚蠢的问题,您是否尝试过关闭命令提示符并打开一个新命令提示符?
确认您的PATH
正确(并且没有搞砸(。只需从命令提示符下键入PATH
即可。鉴于您描述的错误和您采取的步骤,实际上没有其他解释是有意义的。
通常,如果正确安装npm
并且已正确添加到系统路径中,则使用 where grunt
命令会在路径中找到grunt.cmd
。
- 关闭所有命令提示符实例。
- 启动新的命令提示符实例。
- 键入
PATH
输入并验证C:UsersUsernameAppDataRoamingnpm
是否为路径的一部分。 - 如果没有,您需要注销并重新打开,
或关闭命令提示符并重新启动explorer
进程。 -
在命令提示符下,键入
where grunt
输入.
如果它报告以下内容,那就太好了:C:UsersUsernameAppDataRoamingnpmgrunt C:UsersUsernameAppDataRoamingnpmgrunt.cmd
-
否则,如果
grunt-cli
包报告:INFO: Could not find files for the given pattern(s).
显然,更改PATH
环境变量的程序必须广播WM_SETTINGCHANGE
消息。当您更改PATH
变量时,Windows 的系统设置窗口会正确执行此操作,但 NPM 安装程序不会。这就是为什么您必须重新启动资源管理器(或注销或重新启动,具有相同的效果(。
这已经得到了回答,但我想我会为 Windows 8 提供我的分步解决方案。
我检查的第一件事是笔记本电脑环境变量中的路径(右键单击我的计算机>属性>高级系统设置>环境变量(
它没有在那里列出,所以我在用户变量中添加了一个新变量(所以它只特定于我的用户帐户(
在新用户变量提示中,我输入了以下内容;
Variable Name: PATH
Variable Value: %USERPROFILE%AppDataRoamingnpm
退出命令提示符,重新调用,导航到我的项目目录并尝试再次运行grunt
然后...成功!
我遇到了同样的问题。
我尝试了不同的事情:
- 重新启动计算机
- 删除了咕噜咕噜文件夹并运行
npm install -g grunt -cli
没用。
终于试过了:
npm install -g grunt-cli
工作完美。
试
哪里咕噜咕噜
我看到了发现它的 2 个位置。
我在Windows 8上遇到了同样的问题
我已将" %APPDATA%pm "添加到路径变量中。它一直工作正常。
有时 NPM 安装会损坏基本的 Windows 路径。 我通常有一个我自己的 PATH 版本的副本单独维护。 每周或在某些安装中,我都会手动配置和更新 %PATH% 变量。
基本上Grunt.cmd不能通过%PATH%变量使用。
Windows 8 上遇到了问题,安装 grunt-cli 后,当我尝试检查grunt -v
或where grunt
时,我总是得到"找不到命令"。所以我在环境 PATH 中添加了这条路径C:Program Files (x86)Gitlocal
并从该文件夹运行 grunt.cmd(您需要在此处查看node_modules文件夹(。重新加载我的终端后,一切开始工作。
同样的事情也发生在我身上,这是解决方案:您是否安装了 2 个不同版本的 Node.JS?也许诺迪斯特?这意味着您可能安装了两次 NPM,这会将命令安装到 2 个不同的文件夹中:一次进入C:Users<user>AppDataRoamingnpm
,一次进入C:devnodistbinbin
.
C:devnodistbinbin
不在我的路径变量上,所以我添加了它,并删除了我不想使用的 Node.JS 版本。
如果你没有npm创建的grunt.cmd文件,请确保你的主目录中没有.npmrc,里面有:bin-links=false
。
在收到一吨"'grunt'未被识别为内部或外部命令"错误后,我在 Windows 10 上通过转到路径并添加 C:\Users\Username\AppData\Roamingpm 解决了这个问题