grunt致命错误:在Yeoman中找不到本地grunt

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可以在任何目录下运行。
有什么建议吗?
3个回答

90

经过一些快速的研究,我从grunt文档中了解到,必须在项目中安装grunt。我通过运行以下命令来完成安装:

    sudo npm install grunt --save-dev

现在 grunt 正常工作。

我还需要运行:

    npm install

这样所有的依赖关系都被加载。

这解决了我的问题。说实话,我以为yeoman会自动处理最后两个步骤。

如果您有评论或认为有更好的解决方案,请留言。


7
脚手架构建完成后,Yeoman 会自动调用 npm installbower install。在软件世界中,有时也会出现 bug。可能由于某种原因,在构建脚手架时,该过程可能会在错误发生前就意外退出,导致默认情况下未能运行 npm install - Stephen
1
谢谢您的回复。我已经检查了所有的源代码 :-)。我留下了我的帖子,以便对 Yeoman 新手有所帮助。 - blackbird014
很奇怪,当我从我的非Angular分支切回到Angular分支时,我必须重新运行npm install。 - shicholas
也对我有用! - bobber205
在Ubuntu Linux 12.10上遇到了类似的问题。这个解决方案也解决了我的问题。谢谢!+1给两个人。 - CharlieTuna
显示剩余2条评论

13
npm cache clean
sudo npm install grunt --save-dev

真的为我解决了问题


1
我正在使用OS X - 这对我也起了作用。谢谢你的分享,如果没有你的提示,我会搜索更久时间。对于任何正在阅读并且是Grunt新手的人- 也安装Bower。 - Greg L

2
我遇到了同样的问题。
运行npm install后,请确保在项目的根目录下创建了一个node_modules文件夹。这是“本地grunt”将被放置的文件夹。如果没有该文件夹,请检查您的npm配置npm config ls,并确保您有global=false
我在这里找到了解决方案:https://dev59.com/BGYr5IYBdhLWcg3wuciw#13449393

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接