49

我安装了 yeoman 并启动了官方文档中提供的示例。我完成了建议的操作

    yo webapp 
    bower install underscore  
    grunt

运行 grunt 后,我​​收到了消息

    grunt-cli: The grunt command line interface. (v0.1.9)

    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

请注意,grunt 已安装

    npm install -g grunt-cli

    npm install -g grunt

yo 已经在我运行命令的项目根目录中生成了 Gruntfile.js。
package.json 也已生成:

    "name": "testyo",
    "version": "0.0.0",
    "dependencies": {},
    "devDependencies": {
      "grunt": "~0.4.1",
      "grunt-contrib-copy": "~0.4.1",
      "grunt-contrib-concat": "~0.1.3",
      "grunt-contrib-coffee": "~0.6.5",
      "grunt-contrib-uglify": "~0.2.0",
      "grunt-contrib-compass": "~0.2.0",
      "grunt-contrib-jshint": "~0.4.1",
      "grunt-contrib-cssmin": "~0.6.0",
      "grunt-contrib-connect": "~0.2.0",
      "grunt-contrib-clean": "~0.4.0",
      "grunt-contrib-htmlmin": "~0.1.3",
      "grunt-contrib-imagemin": "~0.1.3",
      "grunt-contrib-watch": "~0.4.0",
      "grunt-rev": "~0.1.0",
      "grunt-autoprefixer": "~0.1.20130516",
      "grunt-usemin": "~0.1.10",
      "grunt-mocha": "~0.3.0",
      "grunt-open": "~0.2.0",
      "grunt-svgmin": "~0.1.0",
      "grunt-concurrent": "~0.1.0",
      "matchdep": "~0.1.1",
      "connect-livereload": "~0.2.0"
    },
    "engines": {
      "node": ">=0.8.0"
    }

此外。从根目录

    grunt --version
    grunt-cli v0.1.9

这确认 grunt 可以在每个目录中运行。
任何想法?

4

3 回答 3

90

经过一些快速研究后,我从grunt 文档中意识到,必须在项目中安装 grunt。我通过运行来做到这一点:

    sudo npm install grunt --save-dev

现在咕噜声工作。

我还需要运行:

    npm install

以便加载所有依赖项。

这解决了我的问题。老实说,我认为 yeoman 会自动完成最后两个步骤。

如果您有意见或认为有更好的解决方案,请发表评论。

于 2013-08-07T22:26:12.850 回答
13
npm cache clean
sudo npm install grunt --save-dev

真的对我有用

于 2014-03-12T09:00:06.293 回答
2

我遇到了同样的问题。

运行后npm install,确保在项目的根目录中创建了一个node_modules文件夹。这是放置“local grunt”的文件夹。如果该文件夹不存在,请检查您的 npm 配置npm config ls并确保您有global=false.

我在这里找到了解决方案:https ://stackoverflow.com/a/13449393/1046584

于 2014-07-25T03:47:41.643 回答