grunt Fatal error: Unable to find local grunt in Yeoman
I installed yeoman and started the examples which are provided in the official documentation. I went through the suggested operations
yo webapp
bower install underscore
grunt
After running grunt I have the message
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
Note that grunt have been installed with
npm install -g grunt-cli
and
npm install -g grunt
yo has generated the Gruntfile.js in the project root, where I am running the command.
The package.json has been generated as well:
"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"
}
Additionally. From the root directory
grunt --version
grunt-cli v0.1.9
This confirm that grunt is available to be run in every directory.
Any idea?
Solution 1:
After some quick research I realized, from the grunt documentation, that grunt has to be installed in the project. I did that by running:
sudo npm install grunt --save-dev
Now grunt works.
I also needed to run:
npm install
so that all the dependencies are loaded.
This solved my problem. To be honest I thought yeoman would have taken care of the last two steps automatically.
In case you have comments or think there is a better solution, please leave a comment.
Solution 2:
npm cache clean
sudo npm install grunt --save-dev
really did the trick for me