【问题标题】: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 文件夹中安装依赖项。

标签: javascript gruntjs


【解决方案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
                  

                  它对我有用。

                  【讨论】:

                    猜你喜欢
                    • 2013-03-07
                    • 2013-08-05
                    • 1970-01-01
                    • 2014-07-25
                    • 2015-10-26
                    • 2015-09-16
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-08-14
                    相关资源
                    最近更新 更多