When I try to run
$ grunt
it showing this error
Fatal error: unable to find local grunt
I have installed grunt in my project by using this command
npm install -g grunt-cli
can any one tell me what I have done wrong?
Try to use sudo as sometimes it is just because of access-permission issues. Also check if you are running the command in your project's root directory.
so try
sudo npm install -g grunt-cli
it might also be a good idea to update your update existing npm before installing grunt-cli by running
npm update -g npm
Related
Trying to run grunt in my command line, but I am getting zsh: command not found: grunt.
In my project directory, I ran npm install -g grunt-cli, as per the grunt documentation. I've tried running npm install and npm install grunt --save-dev. I still get the same result.
Options I've tried:
adding grunt to zsh as a plugin
adding /usr/local/share/npm/bin/ to $PATH, as specified here
the solutions in this article on Hongkiat ("Solving Grunt “Command Not Found” Error in Terminal [Quickfix]"). There is a command here that is deprecated.
trying sudo npm install -g grunt-cli
None of these are working. Any tips on how to get grunt to work?
My system:
Mac OS v10.11
npm v5.6.0
node v8.9.4
zsh 5.0.8
Have you tried creating a .zshrc file and other files necessary to set the zsh paths on your mac?
I've installed grunt :
sudo npm install -g grunt-cli
/Users/user/.nvm/versions/node/v4.3.0/bin/grunt -> /Users/user/.nvm/versions/node/v4.3.0/lib/node_modules/grunt-cli/bin/grunt
/Users/user/.nvm/versions/node/v4.3.0/lib
└── grunt-cli#1.2.0
But when i run grunt i have errors:
grunt
grunt-cli: The grunt command line interface (v1.2.0)
Fatal error: Unable to find local grunt.
If you're seeing this message, 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
Where i am wrong please ?
you have to install grunt globally and locally
you have installed the cli globally with the -g flag
now you have to install it locally in your package.json with ...
npm install -SD grunt
then your "grunt" command will work - assuming you have a valid gruntfile
This looks like a duplicate of Fatal error: Unable to find local grunt.
In a nutshell, try running grunt:init or npm:init first (depending on the version you have. See linked question for more details.
install the command-line interface:
npm install -g grunt-cli
install the local task runner:
cd [my project root]
npm install grunt --save-dev
define your Gruntfile.js as per http://gruntjs.com/getting-started#the-gruntfile
run the tasks with: grunt
I am trying to develop ASP.NET applications using a macbook computer with the Yosemite operating system.
I've retrieved the DNVM using Homebrew with the following commands:
brew tap aspnet/dnx
brew update
brew install dnvm
I've also setup the ASP.NET generator using the following commands:
npm install -g yo generator-aspnet
npm install -g bower grunt-cli gulp-cli
At this point, everything should be ready to go. However, when I type yo aspnet in the terminal, it generates an error that states -bash: yo: command not found. What could be causing this and is there an easy fix?
I've referenced multiple resources, the two best listed below:
Reference_01: https://code.visualstudio.com/docs/aspnet5
Reference_02: http://tattoocoder.azurewebsites.net/vscode-creating-an-application-with-yeoman-aspnet-generators/
UPDATE
I made sure to install the following and it still won't recognize yo aspnet
node.js: brew install node
Yeoman: npm install -g yo
Install: npm install -g generator-aspnet
Run: yo aspnet
You need to change the permissions of your usr/local folders by running the following code:
sudo chown -R $USER /usr/local
sudo chown -R yourUsername ~/.npm
npm install -g yo grunt-cli bower
Once you have completed this step, reset the generator-aspnet by running the following lines of code:
npm install -g yo generator-aspnet
npm install -g bower grunt-cli gulp-cli
Now you should be able to run your executable line:
yo aspnet
When I try to install Sails.js, I get:
npm WARN deprecated grunt-lib-contrib#0.7.1: DEPRECATED. See readme: https://github.com/gruntjs/grunt-lib-contrib
npm WARN deprecated guid#0.0.12: Please use node-uuid instead. It is much better.
ws#0.4.32 install /usr/local/lib/node_modules/sails/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
(node-gyp rebuild 2> builderror.log) || (exit 0)
the console hangs right here and never does anything else.
I tried uninstalling all node_modules and reinstalling an earlier version:
sudo rm -rf node_modules
npm cache clear
sudo npm install npm#1.4.23 -g
sudo npm install sails -g
Still the exact same problem. Anyone else run into this and have a solution?
I had a similar problem. A better solution is to use:
npm -g install npm
This will install the latest npm version
A way of handling this, as I've seen it, is by installing the latest version of NPM:
npm install -g npm#1.4.24
And you may have to remove the Grunt Cli first done like so:
npm -g remove grunt-cli
The guys running Sails have also addressed this issue on GitHub: https://github.com/balderdashy/sails/issues/2124
I was using Mac OSX 10.7.5
I simply updated to 10.9.5 and followed the normal installation procedures, everything worked fine.
If you use apt-get or any other to install npm fist, then you must remove it with apt-get then use the sudo npm install -g npm#1.4.24 to install the 1.4 version
I've installed grunt using sudo npm install grunt and now I can't remove it.
I've tried:
$ sudo npm uninstall grunt
But it gives me a WARN:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
I've also tried rm, remove and unlink. and -g options, but those give:
npm WARN uninstall not installed in /usr/lib/node_modules: "grunt"
But I still can run grunt from command line.
EDIT:
$ whereis grunt
grunt: /usr/local/bin/grunt
$ file /usr/local/bin/grunt
/usr/local/bin/grunt: symbolic link to `../lib/node_modules/grunt/bin/grunt'
$ ls /usr/local/lib/node_modules
grunt jshint
$ ls /usr/lib/node_modules
bower csslint devtools-terminal npm plato
Why I have 2 directories with npm? Is it safe to just delete them?
EDITOR NOTE:
This question was asked over 5 years ago as How to uninstall npm package. It's been a very useful question favourited by many, who found a solution to their problem, so I'm changing it back from a recent edit that called it How to uninstall grunt package, because it requires the same procedure as any other npm package.
To uninstall a npm module from project node_modules folder, run:
npm uninstall <module> --save
Note that npm modules should be uninstalled from the same directory that contains the node_modules folder when running this command. The --save option will also remove it from your package.json
One can also remove a local dependency/module installation, by deleting its directory from the local node_modules folder. Yes, it's safe to delete dependencies there.
To uninstall a npm module that was installed globally, run:
npm uninstall -g <module>
It doesn't matter where you run this command from.
To install a npm module, run: (only meant as reference)
npm install <module>
...or:
npm install (if there's a package.json file at the root of your project)
...or:
npm install <module> --save-dev (if you want to add a minimum version to the dependency)
Good things to know about Grunt:
If you have installed grunt stable before February 18, 2013 (the day grunt v0.4.x was released), you might have an older grunt version still lingering in your system. That's because grunt versions lower than 0.4.x were installed globally, which caused a lot of pain when upgrading/maintaining versions.
grunt and grunt-cli are two different things.
grunt (without the "cli") is usually installed at the project level (when listed as a devDependency in package.json) by running npm install. That's also known as a local installation.
grunt-cli is the underlying foundation on which local versions of grunt run in different projects/folders. It can be installed locally, but is more useful when installed globally, once.
grunt is only installed locally (by running npm install grunt).
grunt-cli is preferably installed globally (by running npm install -g grunt-cli). grunt-cli official npm page still warns against installing grunt (without the cli) globally.
If you want to uninstall the global installation of grunt-cli, run npm uninstall -g grunt-cli. This issue on gruntjs's project supports this procedure.
Never install grunt globally (by running npm install -g grunt).
On npm and sudo
sudo doesn't play well with npm. Only use it if you must. Below are two quotes on the advantages and disadvantages on its use:
Quoting Isaac Z. Schlueter on his Introduction to npm article:
I strongly encourage you not to do package management with sudo!
Packages can run arbitrary scripts, which makes sudoing a package manager command
as safe as a chainsaw haircut. Sure, it's fast and definitely going to cut
through any obstacles, but you might actually want that obstacle to stay there.
I recommend doing this once instead:
sudo chown -R $USER /usr/local
That sets your user account as the owner of the /usr/local directory, so that you can
just issue normal commands in there. Then you won't ever have to use sudo when you
install node or issue npm commands.
It's much better this way. /usr/local is supposed to be the stuff you installed, after all.
Yet another catch mentioned by Andrei Karpushonak:
There are certain security concerns and functionality limitations
regarding changing the ownership of /usr/local to the current user:
if there is another user on the machine who could use global
npm packages - do not change the ownership of /usr/local
https://apple.stackexchange.com/questions/1393/are-my-permissions-for-usr-local-correct
https://askubuntu.com/questions/261326/is-it-safe-to-chown-usr-local
Having said that, if you want to install global module without using sudo,
I don't see any better solution (from pragmatic point of view) than mentioned.
Security vs easy of use is very broad topic, and there is no easy answer for that
- it just depends on your requirements.
This same thing happened with me. On doing
which grunt
I got path /usr/local/bin/. There was a folder grunt inside this.
But on running command (even from within the path /usr/local/bin/):
sudo npm uninstall -g grunt
Got the warning uninstall not installed
Solution: turns out that I installed using command
sudo npm install -g grunt-cli
And while trying to remove was just typing grunt.
So once I run
sudo npm uninstall -g grunt-cli
grunt got removed.
Although you have mention in question that you run
sudo npm install grunt
But still check if you are also doing the same mistake and run it with grunt-cli.
In some cases it may be necessary to use npm's "remove a package," feature.
npm - Remove a package
Description
"This uninstalls a package, completely removing everything npm installed on its behalf."
On your third code block, you posted this message:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
I've found that using the
which grunt
or the
whereis grunt
commands in the CLI/console provides an incomplete and confusing output.
Both of these commands will return the path of the grunt-cli installation, but return this simply as grunt.
Also using,
which grunt-cli
or the
whereis grunt-cli
fails to return any output to the CLI console. I believe that this is a namespace issue/feature with npm.
I also had a situation where I was unable to uninstall the grunt-cli with npm's uninstall function as recommended by other contributors above.
The only thing that worked for me was using the npm remove function with the program's full name as demonstrated below.
npm rm -g grunt-cli
This should return the following to your console.
unbuild grunt-cli##.##.#
Good Luck!
Use first this one
which grunt-cli
Or
which grunt
And this will show you the path to the module
In my case it was in the /usr/local/bin/
Once I got into the bin folder I just wrote
sudo rm grunt
And that was the end of it :)
If it's installed globally add -g to uninstall and probably you will need sudo
sudo npm uninstall -g grunt
Running the accepted solution's commands didn't work for me. Running which grunt would result in /usr/local/bin/grunt, but normal (or sudo) npm uninstall -g grunt-cli had no effect.
This is the command that finally worked for me:
sudo npm uninstall grunt-cli -g --prefix=/usr/local
Thanks to gengxuelei on github for the solution!