导致此错误的原因 - “致命错误:无法找到本地咕噜声”

Posted

技术标签:

【中文标题】导致此错误的原因 - “致命错误:无法找到本地咕噜声”【英文标题】:What is causing this error - "Fatal error: Unable to find local grunt" 【发布时间】:2012-12-05 05:49:39 【问题描述】:

我先把旧版本的grunt卸载了,再安装新的grunt版本,然后就报这个错:

D:\www\grunt-test\grunt grunt-cli:grunt 命令行界面。 (v0.1.4)

致命错误:无法找到本地咕噜声。

如果您看到此消息,则表示未找到 Gruntfile 或 grunt 尚未本地安装到您的项目中。更多 有关安装和配置 grunt 的信息,请参阅 入门指南:http://gruntjs.com/getting-started

这是因为我的系统路径中没有对 grunt 的引用吗?或者是其他东西?我已经尝试重新安装了几次。

【问题讨论】:

你是全局安装的吗? npm install grunt -g 你的项目根目录下有Gruntfile.js吗? @Garreh 已经有一段时间了,但请从终端尝试npm install grunt --save-dev。这应该会将最新版本添加到您的 package.json 哎呀——在一个新签出的项目中遇到了这个问题。只需要做npm install nmp install - 在本地 node_modules 文件夹中安装依赖项。 【参考方案1】:

我认为您的项目目录中没有grunt.js 文件。使用grunt:init,它为您提供jQuery, node,commonjs 等选项。选择你想要的,然后继续。这真的有效。欲了解更多信息,您可以访问this。

这样做:

 1. npm install -g grunt
 2. grunt:init  ( you will get following options ):
      jquery: A jQuery plugin
      node: A Node module
      commonjs: A CommonJS module
      gruntplugin: A Grunt plugin
      gruntfile: A Gruntfile (grunt.js)
 3 .grunt init:jquery (if you want to create a jQuery related project.).

它应该可以工作。

v1.4 的解决方案:

1. npm install -g grunt-cli
2. npm init
   fill all details and it will create a package.json file.
3. npm install grunt (for grunt dependencies.)

编辑:新版本的更新解决方案:

 npm install grunt --save-dev

【讨论】:

这个版本一定是旧版本(v0.3)。今天我卸载了它,并安装了新的grunt(v0.4),称为Grunt-CLI。有些东西发生了变化..跨度> 目前,npm install grunt 安装 grunt 0.3.x。您需要执行 `npm install grunt@0.4' 去本地安装 grunt-cli 所需的 grunt 版本 我希望 Grunt 安装步骤能够解决 @0.4.在找到您的评论之前,我真的很想弄清楚这一点。 npm install grunt --save-dev 为我做的 grunt-cli 应该全局安装,但它希望您在项目中本地安装 grunt.js。这允许每个项目使用不同版本的 grunt。我通常使用带有 package.json 文件的 npm 来安装 grunt.js 所有其他 grunt conribs 等。【参考方案2】:

在 node_modules 中而不是全局安装 Grunt

Unable to find local Grunt 可能意味着您已经全局安装了 Grunt。

Grunt CLI 坚持将 grunt 安装在本地 node_modules 目录中,因此 Grunt 对您的项目来说是本地的。

这将失败:

npm install -g grunt

改为这样做:

npm install grunt --save-dev

【讨论】:

这解决了我的问题。不知道它是如何不被接受的。好东西。【参考方案3】:

npm install

./node_modules 本地安装 Grunt(以及在 package.json 文件中指定的所有其他内容)

【讨论】:

我这样做是因为我像个傻瓜一样在将新项目的 repo 拉到 mac 后忘记运行此命令.....:/ 命令行工具总是可以全局定位,怎么还需要本地安装grunt? @MikeM 有时您的PATH 中有node_modules/.bin。此外,本地和全局可以是不同的版本。 就我而言,这是 NetBeans 的错。有时,当我在外部工具中执行git stash 时,它会使我的项目崩溃,这里它从node_modules 中删除了一些模块,并且一切都停止工作(并且之前工作正常)。在npm install 之后它再次运行良好。【参考方案4】:

如果您在项目中已经有一个文件package.json,并且它在依赖项中包含grunt

  "devDependencies": 
    "grunt": "~0.4.0",

然后你可以运行npm install来解决问题

【讨论】:

【参考方案5】:

我错误地使用 sudo 和其他没有权限安装了一些包,这解决了我的问题。

sudo chown -R $(whoami) $HOME/.npm

希望对某人有所帮助。

【讨论】:

【参考方案6】:

它说你没有本地 grunt 所以试试:

npm install grunt

(没有-g 是本地grunt

虽然没有直接关系,但请确保您的当前文件夹中有 Gruntfile.js

【讨论】:

【参考方案7】:

这里可能会出现一些问题,具体取决于所使用的 grunt 版本。较新版本的 grunt 实际上指定您有一个名为 Gruntfile.js 的文件(而不是旧的 grunt.js)。

您应该全局安装grunt-cli 工具(这是通过npm install -g grunt-cli 完成的)。这允许您从命令行实际运行grunt 命令。

其次,确保您已在本地为您的项目安装了 grunt。如果你看到你的package.json 里面没有"grunt": "0.4.5" 这样的东西,那么你应该在你的项目目录中做npm install grunt --save

【讨论】:

【参考方案8】:

我不得不在 ubuntu 上执行以下命令来解决这个问题(我知道 grunt 1 小时):

sudo npm install -g grunt
sudo npm install -g grunt-cli

cd /usr/local/bin
# current symlink points to ../lib/node_modules/grunt/bin/grunt*
sudo rm /usr/local/bin/grunt
sudo ln -s ../lib/node_modules/grunt-cli/bin/grunt* grunt

它很脏,但它是我找到的唯一一种解决方案... :(

【讨论】:

【参考方案9】:

上述方法都不适合我,因为我已经在全球范围内安装了 grunt(奇怪的是,在其中几个答案中推荐了),这把一切都搞砸了。以下是有效的方法:

npm uninstall -g grunt
npm install

直到现在,我才安装了本地 grunt 并且可以使用。

【讨论】:

【参考方案10】:

只需npm install 安装node_modules

【讨论】:

【参考方案11】:

你可以简单地运行这个命令:

npm install grunt --save-dev

【讨论】:

【参考方案12】:

作为 grunt 的新手并对其进行设置,我正在(也许愚蠢地)从 Google Drive 运行我的 grunt 项目/文件夹,因此我可以从我的笔记本电脑或工作站访问相同的代码/构建。

nodes_modules 文件夹同步回 Google Drive 有相当多的时间,在某些时候似乎存在冲突,并且 /nodes_modules/grunt 文件夹已重命名为 /nodes_modules/grunt (1)

通过删除 (1) 重命名它似乎可以为我修复它。

【讨论】:

你为什么不用GIT? 我不想跟踪/版本更改,并试图不维护两个单独的 grunt 安装,但上述情况相当有问题,所以我还是搬到了 github。【参考方案13】:

我在 Vagrant 中遇到了同样的问题。

我已经使用 sudo 运行命令进行安装。

sudo npm install -g grunt-cli

它对我有用。

【讨论】:

以上是关于导致此错误的原因 - “致命错误:无法找到本地咕噜声”的主要内容,如果未能解决你的问题,请参考以下文章

核心数据“数据库出现损坏”——导致此错误的原因是啥?

什么原因导致“Google Maps API 服务器拒绝了您的请求。发现此 API 项目的内部错误。”?

导致此“Base-64 字符数组的长度无效”的原因

导致此问题的原因:无法从 switch 语句跳转到此案例标签 [重复]

是啥导致此运行时错误 13“类型不匹配”?

在 Windows 机器上运行 Postgresql 11 时导致“更多无法识别...”错误的原因是啥?