【问题标题】:"Fatal error: Unable to find local grunt." when running "grunt" command“致命错误:无法找到本地咕噜声。”运行“咕噜”命令时
【发布时间】:2013-03-07 04:44:16
【问题描述】:

我使用以下命令卸载了 grunt。

npm uninstall -g grunt

然后我再次使用以下命令安装了 grunt。

npm install -g grunt-cli

访问以下链接: https://npmjs.org/package/grunt-html

我想用上面的 grunt 插件

但是当我运行 grunt 命令时,它给了我以下错误:

D:\nodeJS\node_modules\grunt-html>grunt
grunt-cli: The grunt command line interface. (v0.1.6)

Fatal error: Unable to find local grunt.

If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project. For more information about
installing and configuring grunt, please see the Getting Started guide:
http://gruntjs.com/getting-started

【问题讨论】:

  • 我不明白这与 jQuery 有什么关系。您必须在项目目录中安装 grunt,正如文档中所述:gruntjs.com/getting-started#installing-grunt-and-gruntplugins。错误消息还显示:“[...] 或 grunt 尚未安装到您的项目本地。”.
  • 我在我的项目目录中成功安装了 grunt。现在我该如何使用那个插件
  • 您安装插件并按照其项目页面(您链接到的页面)上的说明进行操作。
  • stackoverflow.com/questions/13925916/… ,这可能会有所帮助

标签: node.js gruntjs


【解决方案1】:

gruntjs.com 上的所有内容都得到了很好的解释。

请注意,安装 grunt-cli 不会安装 grunt 任务运行器! grunt CLI 的工作很简单:运行具有 安装在 Gruntfile 旁边。这允许多个版本的 grunt 要同时安装在同一台机器上。

因此,在您的项目文件夹中,您需要安装(最好)最新的 grunt 版本

npm install grunt --save-dev

选项--save-dev 会将grunt 作为dev-dependency 添加到您的package.json。这使得重新安装依赖项变得容易。

【讨论】:

  • 我没有对你投反对票,但可能是因为你的第二行是不必要的和迂腐的。
  • @LeeWhitney 我已经删除了该行,我的意思是错误消息提到了入门指南的链接,这应该是寻找答案的第一个地方。
【解决方案2】:

你必须在你的项目文件夹中安装 grunt

  1. 创建你的 package.json

    $ npm init
    
  2. 为此项目安装 grunt,它将安装在 node_modules/ 下。 --save-dev 会将这个模块添加到你的 package.json 中的 devDependency 中

    $ npm install grunt --save-dev
    
  3. 然后创建 gruntfile.js 并运行

    $ grunt 
    

【讨论】:

【解决方案3】:

我认为您必须将 grunt 添加到您的 package.json 文件中。见this link

【讨论】:

  • @mpang 链接失效了
【解决方案4】:

我的 Windows grunt 遇到了这个问题,因为我在 64 位 Windows 操作系统上安装了 32 位版本的 Node。当我专门安装64位版本时,它开始工作了。

【讨论】:

  • +1 来自我...我想知道为什么这被否决了。这似乎是 grunt 失败的一个完全合理的原因。
【解决方案5】:

我今天在 Windows 32 位,节点 0.10.25 和 grunt 0.4.5 上遇到了同样的问题。

我关注了dongho's answer,只做了几个额外的步骤。 以下是我用来解决错误的步骤:

1) 创建你的 package.json

$ npm init

2) 为这个项目安装 grunt,它将安装在 node_modules/ 下。 --save-dev 会将这个模块添加到你的 package.json 中的 devDependency 中

$ npm install grunt --save-dev

3) 然后创建 gruntfile.js ,示例代码如下:

module.exports = function(grunt) {

  grunt.initConfig({
    jshint: {
      files: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
      options: {
        globals: {
          jQuery: true
        }
      }
    },
    watch: {
      files: ['<%= jshint.files %>'],
      tasks: ['jshint']
    }
  });

  grunt.loadNpmTasks('grunt-contrib-jshint');
  grunt.loadNpmTasks('grunt-contrib-watch');

  grunt.registerTask('default', ['jshint']);

};

这里,src/**/*.jstest/**/*.js 应该是您在项目中使用的实际 JS 文件的路径

4) 运行npm install grunt-contrib-jshint --save-dev

5) 运行npm install grunt-contrib-watch --save-dev

6) 运行$ grunt

注意:当您需要 concat、uglify 等常用包时,您需要通过npm install 添加这些模块,就像我们在第 4 步和第 5 步中安装 jshint 和 watch 的方式一样

【讨论】:

    【解决方案6】:

    如果你是一个存在的项目,也许应该执行 npm install。

    guntjs getting started 第 2 步。

    【讨论】:

      【解决方案7】:

      这为我解决了这个问题。我错误地使用以下命令安装了 grunt:

      sudo npm install -g grunt --save-dev
      

      然后在项目文件夹中运行以下命令:

      npm install
      

      这导致了问题作者看到的错误。 然后我使用以下命令卸载了 grunt:

      sudo npm uninstall -g grunt
      

      删除了 node_modules 文件夹。并使用以下命令重新安装 grunt:

      npm install grunt --save-dev
      

      并在项目文件夹中运行以下命令:

      npm install
      

      由于某些奇怪的原因,当您使用 -g 全局安装 grunt 然后卸载它时,node_modules 文件夹保留了阻止 grunt 本地安装到项目文件夹的内容。

      【讨论】:

        猜你喜欢
        • 2014-07-25
        • 2015-04-13
        • 2013-08-05
        • 2015-08-03
        • 1970-01-01
        • 2012-12-05
        • 2015-05-25
        • 2013-03-15
        • 2017-04-14
        相关资源
        最近更新 更多