Skip to content

Instantly share code, notes, and snippets.

@mikesherov
Created April 25, 2012 12:56
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save mikesherov/2489540 to your computer and use it in GitHub Desktop.
Save mikesherov/2489540 to your computer and use it in GitHub Desktop.
getting grunt to work on windows with cygwin and git

Getting grunt to work with Cygwin and git on Windows is a bit difficult considering the cygwin package that is installed by git has an outdated version of node running on it (at least that was the case in Windows XP). There are several issues to work through:

  1. Cygwin by default installs an old version of node, this was only the case in my Windows XP machine.
  2. Open Cygwin shell
  3. which node tells you where the executable is
  4. node --version tells you if it's old
  5. cd to the directory listed by which node
  6. mv node.exe node.exe.bak
  7. download node from nodejs.org and install it
  8. Node installed through installer MIGHT not update PATH to point to correct version of node installed normally.
  9. on my Windows XP: it was /c/Documents and Settings/mike/Application Data/npm:/c/Program Files/nodejs
  10. on my Windows 7 machine: it was in /c/Users/Mike Sherov/AppData/Roaming/npm:/c/Program Files (x86)/nodejs/
  11. to see current path: echo $PATH
  12. to set path: export PATH="your path here"
  13. i added /c/Documents and Settings/mike/Application Data/npm:/c/Program Files/nodejs: to my path
  14. grunt needs to be installed globally and locally
  15. cd to your jquery top level directory
  16. npm install will install local grunt and grunt-compare-size
  17. npm install -g grunt will install the global grunt that is recognized as in the PATH

that should be it, at least that's what worked for me

@rdworth
Copy link

rdworth commented Apr 25, 2012

What is Cygwin needed for if node is distributed as a Windows binary?

@mikesherov
Copy link
Author

git bash

@rdworth
Copy link

rdworth commented Apr 25, 2012

Ah, I think your gist description could provide a bit more context. Grunt works on Windows without Cygwin because it depends only on node, not git or bash.

@mikesherov
Copy link
Author

@rdworth, I've updated it. I provided this gist because several other jquery core guys were having trouble gettings cygwin and grunt and node and git to play nicely together.

@cowboy
Copy link

cowboy commented Apr 25, 2012

It might be useful for this to be added to the grunt FAQ.

@mikesherov
Copy link
Author

@cowboy, I agree. I want to get some confirmation from other windows people first that this is a real fix and not just some noise, but feel free to use it how you like!

@cowboy
Copy link

cowboy commented Apr 25, 2012

@mikesherov i saw in your email that you use Windows XP. Node.js doesn't officially support Windows XP, and I've definitely experienced problems with it. I can't remember if they were filesystem or child process based issues, but they were very real and a huge PITA at the time.

Just figured I'd mention it.

@rdworth
Copy link

rdworth commented Apr 25, 2012

fwiw I'm using grunt inside PowerShell in Windows 7 without Cygwin (I use msysgit for git and don't need bash). It also works in regular old Command Prompt, difference being (from PowerShell) that you have to type grunt.cmd instead of grunt

@mikesherov
Copy link
Author

@rdworth, good to know.

@rdworth
Copy link

rdworth commented Apr 26, 2012

As well as I made out with Windows 7, I got tripped up by a child process issue (Error: CreateProcessW: The system cannot find the file specified.) with grunt.utils.spawn("git",...) @cowboy see https://github.com/cowboy/grunt/pull/156

@mikesherov
Copy link
Author

@rdworth, good find.

@dmethvin
Copy link

dmethvin commented May 6, 2012

The whole grunt.cmd vs grunt and npm.cmd vs npm is a bit grating ... @rdworth are you relatively happy using PowerShell? I like working in cygwin/bash since it's a "real" shell. I suppose I could alias them.

@cowboy
Copy link

cowboy commented May 6, 2012

@dmethvin that should no longer be an issue in grunt 0.4.0 when the gruntfile is renamed to Gruntfile.js from grunt.js, but in the meantime, check out the FAQ.

@cowboy
Copy link

cowboy commented May 6, 2012

(at least, I think)

Copy link

ghost commented Mar 16, 2013

Nodejs supports Windows now officially, forget Cygwin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment