1

I'm trying to get grunt.js set up on my work machine. Now I've managed to get it set up at home, so I pushed my repository, then cloned it on my work machine, however despite troubleshooting this to death I've always run into the same issue when I come to try and run the command on my work computer;

sh.exe": grunt: command not found

So some background and explanation;

  • I'm using Aptana 3.0 and running all my commands through the terminal. (This applies to my home and work computer)
  • I cloned the "working" repository and put it in a folder on my work machine, so I have my package.json and gruntfile.js files inside said directory. These work fine on my home computer and I am able to run the watch task set up in my gruntfile.js successfully at home.
  • I've run npm install grunt-cli -g and npm install inside my project on my WORK computer and installation has been successful each time. My only error messages on either are a lack of description and a repository field which, to my knowledge these aren't mandatory?
  • The node modules folder inside my repository indicates I have the following installed (as per my package.json)

    • grunt
    • grunt-contrib-compass
    • grunt-contrib-uglify
    • grunt-contrib-watch
    • matchdep

Now I'm pretty green to this command line stuff, so I may have overlooked something very obvious but I feel like I've tried every guide going to get this thing to work.

Despite running through the getting started steps/installing grunt documentation repeatedly, it seems no matter what I do the terminal will not pick up grunt as a recognized command.

Am I stupid or is this some other issue?

EDIT 1: contents of my package.json:

{ "name" : "xxxxxxxxx", "version" : "xxxx", "dependencies" : { "grunt":"~0.4.1", "grunt-contrib-watch": "~0.5.3", "grunt-contrib-compass": "~0.5.0", "grunt-contrib-uglify": "~0.2.2", "matchdep": "~0.1.2" } }

defteH
  • 141
  • 2
  • 10

2 Answers2

3

Try to run

npm install grunt-cli -g

On your home computer. -g means - install Grunt globally (not in the project node_modules folder), so it'll add grunt command to the bin folder which is used by nodejs console ( and you need to run node.js command prompt, not just arbitrary cmd)

Alexey Shcherbak
  • 3,394
  • 2
  • 27
  • 44
  • 1
    I had done that on both computers, it was not setting the PATH variable to node. Having gone through the article above and added the `C:\Users\Username\AppData\Roaming\npm` to my path variable its now recognizing the command :) – defteH Dec 17 '14 at 10:36
  • That's because you are using the Aptana Terminal, which needs the PATH variable to work out what is meant by grunt etc. A normal cmd prompt would work fine with the command `npm install grunt-cli -g` – athms Dec 17 '14 at 10:40
3

This is happening because you are using the Aptana Terminal, which needs the PATH variable to work out what is meant by grunt etc. A normal cmd prompt would work fine with the command npm install grunt-cli -g but in this context the terminal is unaware of what grunt is.

As per the following existing answer, you need to set up your Windows PATH variable to make the Aptana Terminal aware of the npm directory: https://stackoverflow.com/a/19137584/463205

C:\Users\Username\AppData\Roaming\npm

Closing the terminal and reopening it after setting the PATH correctly should enable you to run the command successfully.

Community
  • 1
  • 1
athms
  • 948
  • 5
  • 8