导致此错误的原因 - “致命错误:无法找到本地咕噜声”
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 项目的内部错误。”?