简体   繁体   中英

Grunt on Windows 8: 'grunt' is not recognized

I'm having a problem running Grunt from the command line on my Windows 8 machine.

My research indicates the most common solution is to install grunt-cli, since Grunt is no longer global. I also need to make sure I actually install the Grunt task runner, since that's not installed with grunt-cli.

Other solutions point to the PATH system environment variable, but that appears to be pointed as I'd expect to:

C:\\Users[username]\\AppData\\Roaming\\npm

Having done all that, I'm still getting a "'grunt' is not recognized as an internal or external command, operable program or batch file" error message in the CLI. I've tried the following things, uninstalling everything after every attempt:

  • Installed grunt-cli globally (npm install -g grunt-cli), then grunt at the directory level I want to use it (npm install grunt)
  • The same as above, but with the order of installation reversed
  • The same as both of the above, but using the Admin Command Prompt

Am I missing something obvious?

I've not had any issues with grunt on several different windows 8 machines.

If you open the folder: C:\\Users\\[username]\\AppData\\Roaming\\npm

Do you have a file named grunt.cmd in this folder?

If not I'd maybe try npm install -g grunt-cli again, maybe from an elevated command prompt.

If this exists and you have C:\\Users\\[username]\\AppData\\Roaming\\npm in your PATH environment variable then typing grunt from a command prompt should work.

Silly question, have you tried closing the command prompt and opening a new one?

Confirm your PATH is correct (and not messed up). Just type PATH from the command prompt. There's really no other explanation that makes sense given the error you're describing and the steps you've taken.

Normally, using the where grunt command would have found grunt.cmd in your path if npm is installed correctly and it has been properly added to the system path.

  1. Close all Command Prompt instances.
  2. Start a new Command Prompt instance.
  3. Type PATH Enter and verify if C:\\Users\\Username\\AppData\\Roaming\\npm is part of the path.
  4. If not, you need to log off and on again ,
    or close the Command Prompt and restart the explorer process.
  5. In the Command Prompt, type where grunt Enter .
    You're good if it reports:

     C:\\Users\\Username\\AppData\\Roaming\\npm\\grunt C:\\Users\\Username\\AppData\\Roaming\\npm\\grunt.cmd
  6. Otherwise, you have to reinstall the grunt-cli package if it reports:

     INFO: Could not find files for the given pattern(s).

Apparently, programs that change the PATH environment variable must broadcast a WM_SETTINGCHANGE message. The Windows' System settings window does it correctly when you change the PATH variable, but the NPM installer doesn't. That's why you have to restart explorer (or log off or restart, which has the same effect).

I know this has been answered but I thought I'd offer my step by step solution for windows 8.

First thing I checked was the PATH in my laptops Environment Variables (Right click my computer > properties > advanced system settings > Environment Variables)

It wasn't listed in there so I added a new variable in User variables (so it was specific only to my user account)

In the new user variable prompt I entered the following;

Variable Name: PATH

Variable Value: %USERPROFILE%\AppData\Roaming\npm

Quit command prompt, repoened, navigated to my projects directory and tried running grunt again and... SUCCESS!

I had the same issue.

I tried different things:

  • Restart computer
  • Deleted the grunt folder and ran

npm install -g grunt -cli

Didn't work.

Finally tried:

npm install -g grunt-cli

Worked perfectly.

Tried

where grunt

and I saw 2 locations where it was found.

I was facing the same problem on windows 8

I have added ' %APPDATA%\\npm ' to the path variable . It has been working fine.

some times NPM install corrupts the basic windows path. i usually have a copy of my own version of PATH mainted separately. every week or on some installs i manually configure and update the %PATH% variable.

Basically Grunt.cmd is not availbe through %PATH% variable.

I have stucked with problem on Windows 8, that after install grunt-cli I've always got "command not found" while I'm tried to check grunt -v or where grunt . So I've added to enviroment PATH this path C:\\Program Files (x86)\\Git\\local and run grunt.cmd from that folder (you need to look in node_modules folder here). And after reloading my terminal everything started to work.

Same happened to me and here was the solution: Have you got 2 different versions of Node.JS installed? Maybe Nodist? This means you likely got NPM installed twice which will install the commands into 2 different folders: Once into C:\\Users\\<user>\\AppData\\Roaming\\npm and once into C:\\dev\\nodist\\bin\\bin .

C:\\dev\\nodist\\bin\\bin wasn't on my path variable so I added it, and I removed the Node.JS version I didn't want to use.

如果您没有 npm 创建的 grunt.cmd 文件,请确保您的主目录中没有.npmrc ,其中包含: bin-links=false

在收到大量“'grunt' 未被识别为内部或外部命令”错误后,我通过转到 Path 并添加 C:\\Users\\Username\\AppData\\Roaming\\npm 在 Windows 10 上解决了这个问题

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM